天啊,都乱了
if (i<1||i>L->length+1) return ERROR;
q=&(L->elem[i-1]);
for(p=&L->elem[L->length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
++L->length;
return OK;
}/*ListInsert Before i */
看这个代码,感觉他就是把数组的地址copy了一下,实在没明白这也叫线性表
线性表和链表到底有什么区别,坐了半个多小时实在想不出来到底要怎么写
还有length=0;elem[-1]到底是什么东西
帮忙帮忙,说一下区别,还有上面那个问题
status ListInsert(List *L,int i,ElemType e) {
struct STU *p,*q;
if (i<1||i>L->length+1) return ERROR;
q=&(L->elem[i-1]);
for(p=&L->elem[L->length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
++L->length;
return OK;
}/*ListInsert Before i */
线æ§è¡¨æ¯æåºæ¬ãæç®åãä¹æ¯æ常ç¨çä¸ç§æ°æ®ç»æã线æ§è¡¨ä¸æ°æ®å
ç´ ä¹é´çå
³ç³»æ¯ä¸å¯¹ä¸çå
³ç³»ï¼å³é¤äºç¬¬ä¸ä¸ªåæåä¸ä¸ªæ°æ®å
ç´ ä¹å¤ï¼å
¶å®æ°æ®å
ç´ é½æ¯é¦å°¾ç¸æ¥çã线æ§è¡¨çé»è¾ç»æç®åï¼ä¾¿äºå®ç°åæä½ãå æ¤ï¼çº¿æ§è¡¨è¿ç§æ°æ®ç»æå¨å®é
åºç¨ä¸æ¯å¹¿æ³éç¨çä¸ç§æ°æ®ç»æã
顺åºè¡¨æ¯å¨è®¡ç®æºå åä¸ä»¥æ°ç»çå½¢å¼ä¿åç线æ§è¡¨,æ¯æç¨ä¸ç»å°åè¿ç»çåå¨åå ä¾æ¬¡åå¨æ°æ®å ç´ ç线æ§ç»æã线æ§è¡¨éç¨é¡ºåºåå¨çæ¹å¼åå¨å°±ç§°ä¹ä¸ºé¡ºåºè¡¨ã顺åºè¡¨æ¯å°è¡¨ä¸çç»ç¹ä¾æ¬¡åæ¾å¨è®¡ç®æºå åä¸ä¸ç»å°åè¿ç»çåå¨åå ä¸ã
é¾è¡¨æ¯ä¸ç§ç©çåå¨åå ä¸éè¿ç»ãé顺åºçåå¨ç»æï¼æ°æ®å ç´ çé»è¾é¡ºåºæ¯éè¿é¾è¡¨ä¸çæéé¾æ¥æ¬¡åºå®ç°çãé¾è¡¨ç±ä¸ç³»åç»ç¹ï¼é¾è¡¨ä¸æ¯ä¸ä¸ªå ç´ ç§°ä¸ºç»ç¹ï¼ç»æï¼ç»ç¹å¯ä»¥å¨è¿è¡æ¶å¨æçæãæ¯ä¸ªç»ç¹å æ¬ä¸¤ä¸ªé¨åï¼ä¸ä¸ªæ¯åå¨æ°æ®å ç´ çæ°æ®åï¼å¦ä¸ä¸ªæ¯åå¨ä¸ä¸ä¸ªç»ç¹å°åçæéåã ç¸æ¯äºçº¿æ§è¡¨é¡ºåºç»æï¼é¾è¡¨æ¯è¾æ¹ä¾¿æå ¥åå é¤æä½ã
顺åºè¡¨æ¯å¨è®¡ç®æºå åä¸ä»¥æ°ç»çå½¢å¼ä¿åç线æ§è¡¨,æ¯æç¨ä¸ç»å°åè¿ç»çåå¨åå ä¾æ¬¡åå¨æ°æ®å ç´ ç线æ§ç»æã线æ§è¡¨éç¨é¡ºåºåå¨çæ¹å¼åå¨å°±ç§°ä¹ä¸ºé¡ºåºè¡¨ã顺åºè¡¨æ¯å°è¡¨ä¸çç»ç¹ä¾æ¬¡åæ¾å¨è®¡ç®æºå åä¸ä¸ç»å°åè¿ç»çåå¨åå ä¸ã
é¾è¡¨æ¯ä¸ç§ç©çåå¨åå ä¸éè¿ç»ãé顺åºçåå¨ç»æï¼æ°æ®å ç´ çé»è¾é¡ºåºæ¯éè¿é¾è¡¨ä¸çæéé¾æ¥æ¬¡åºå®ç°çãé¾è¡¨ç±ä¸ç³»åç»ç¹ï¼é¾è¡¨ä¸æ¯ä¸ä¸ªå ç´ ç§°ä¸ºç»ç¹ï¼ç»æï¼ç»ç¹å¯ä»¥å¨è¿è¡æ¶å¨æçæãæ¯ä¸ªç»ç¹å æ¬ä¸¤ä¸ªé¨åï¼ä¸ä¸ªæ¯åå¨æ°æ®å ç´ çæ°æ®åï¼å¦ä¸ä¸ªæ¯åå¨ä¸ä¸ä¸ªç»ç¹å°åçæéåã ç¸æ¯äºçº¿æ§è¡¨é¡ºåºç»æï¼é¾è¡¨æ¯è¾æ¹ä¾¿æå ¥åå é¤æä½ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-06-28
线性表一般以数组形式实现,在内存中连续存放。
链表以链表的形式实现,在内存中可以不连续存放。
链表以链表的形式实现,在内存中可以不连续存放。
第2个回答 推荐于2017-09-19
线性表有两种方式:
1.顺序线性表 (也就是用数组实现的,在内存中有顺序排列,通过改变数组大小实现)
2.链表 (不是用顺序实现的,用指针实现,在内存中不连续)
代码不全也不知道上面是做什么的,给你点提示吧
elem是线性表的基地址
length是线性表的长度
线性表的包含:
基地址
当前长度
总长度
每个表都有初始长度,如果超过了这个长度,可以用函数将这个长度加长本回答被提问者采纳
1.顺序线性表 (也就是用数组实现的,在内存中有顺序排列,通过改变数组大小实现)
2.链表 (不是用顺序实现的,用指针实现,在内存中不连续)
代码不全也不知道上面是做什么的,给你点提示吧
elem是线性表的基地址
length是线性表的长度
线性表的包含:
基地址
当前长度
总长度
每个表都有初始长度,如果超过了这个长度,可以用函数将这个长度加长本回答被提问者采纳
第3个回答 2019-02-23
在有序表中插入数据后不用再排序了:
1、找到要该插入数据的位置,使得线性表仍然有序;
2、将第1步找到位置后面的数据统一往后移动一位,给要插入数据腾出位置;
3、插入数据。
下面我给的是用数组实现的,数据都用简单int:
void
insert(int
a[],int
n,int
x)
{//在有序(递增)线性表a中插入x,a的长度是n;
int
i
,j;
for(i=0;i
=x)
break;
for(j=n;j>=i;j--)
a[j]=a[j-1];
a[i]=x;
}
1、找到要该插入数据的位置,使得线性表仍然有序;
2、将第1步找到位置后面的数据统一往后移动一位,给要插入数据腾出位置;
3、插入数据。
下面我给的是用数组实现的,数据都用简单int:
void
insert(int
a[],int
n,int
x)
{//在有序(递增)线性表a中插入x,a的长度是n;
int
i
,j;
for(i=0;i
=x)
break;
for(j=n;j>=i;j--)
a[j]=a[j-1];
a[i]=x;
}