单链表
查找第i个结点:
while( p && j<i) //寻找第i个结点
{
p = p->next;
++j;
}
注释:P是指向表头的指针,j从头开始遍历。
链表的插入:
s->next = p ->next; /*将p的后继结点赋值给s的后继*/
p->next = s; /*将s赋值给p的后继*/
注意:顺序不能调换。
链表的删除:
q = p->next ;
p ->next = q->next ; / * 将q的后继赋值给p的后继 */
注意:把要删除的 p->next 赋值给q,q->next 就相当于p->next->next.
顺序表
判断顺序表是否已经满了
if (L->length == MAXSIZE)
return ERROR;
当i不在范围内时
f (i < 1 || i >L->length + 1)
return ERROR;
顺序表的插入
if (i <= L->length)
{
/*将要插入位置后数据元素向后移动一位 */
for (k = L->length - 1; k >= i - 1; k--)
L->data[k + 1] = L->data[k];
}
L->length++;
注意:总长度要加一。
顺序表的删除
if (i < L->length)
{
for (k = i; k < L->length; k++)
L->data[k - 1] = L->data[k];
}
L->length--;
注意:删除的时候总长度要减一。