天天看点

单链表的插入和删除操作

插入的伪代码:(仿照C语言和Python)

Status ListInsert_L(LinkList &L, int i, ElemType e)#第i个位置前插入节点(注:&&是比较ASCII码)

read p = L and j = 0

while( p && j < i-1)

p = p -> next

read j += 1

if(!p || j> i - 1) return ERROR

s = (LinkList )malloc(sizeof(LNode)) #生成新节点

s->data = e

s->next = p->next;

p->next = s

return ok

删除的伪代码:(仿照C语言)

Status ListDelete_L(LinkList &L, int i, ElemType &e)

//删除第i个元素,并有e作为返回值

P = L and j = 0

while( p->next && j < i-1)

p = p ->next

j++

if(!(p->next) || j > i-1) return ERROR //删除位置不合理
  q = p->next
  p->next = q->next
  e = q->data
  free(q)
  return ok
           

参考资料:

https://blog.csdn.net/iteye_9716/article/details/81900059