1. 定义了单链表LinkList L*; 然后定义一个节点p指向单链表的第一个节点:
(1)p=*L;
(2)p=(*L)-->next;
这两者定义有何区别?是一个有头结点,一个没有吗?
2.
/* 在L中第i个元素之前插入新的数据元素e */ Status ListInsert(StaticLinkList L, int i, ElemType e) { int j, k, l; k = MAXSIZE - 1; /* 注意k首先是最后一个元素的下标 */ if (i < 1 || i > ListLength(L) + 1) return ERROR; j = Malloc_SSL(L); /* 获得空闲分量的下标 */ if (j) { L[j].data = e; /* 将数据赋值给此分量的data */ for(l = 1; l <= i - 1; l++) /* 找到第i个元素之前的位置 */ k = L[k].cur; L[j].cur = L[k].cur; /* 把第i个元素之前的cur赋值给新元素的cur */ L[k].cur = j; /* 把新元素的下标赋值给第i个元素之前元素的ur */ return OK; } return ERROR; }
这个是静态链表的插入过程,标红且划线那里不明白,为什么边界值是Length+1?当它等于ListLength的时候可以吗???
这题,我也想知道答案。
木有别人回答……