首页 > 技术文章 > 单链表的插入和删除操作

saberwc 2020-11-17 19:28 原文

插入的伪代码:(仿照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

推荐阅读