数据结构单链表:指定结点的前插、后插操作
指定结点的前插操作
typedef struct LNode{ int data; struct LNode *next; }LNode, *LinkList; //在p结点之前插入元素e bool InsertPriorNode(LNode *p, int e){ if(p==NULL) return false; LNode *s = (LNode *)malloc(sizeof(LNode)); if(s==NULL) //内存分配失败 return false; s->next = p->next; p->next = s; //新结点s连到p之后 s->data = p->data; //将p中元素复制到s中 p->data = e; //p中元素覆盖为e return true; } //核心思想:由于没法直接找到p结点的前结点,可以先把s结点插入p结点之后, //再把p结点的数据复制到s结点,最后把p中数据赋值为新插入值e。
指定结点的后插操作
typedef struct LNode{ int data; struct LNode *next; }LNode, *LinkList; bool InsertNextNode(LNode *p, int e){ if(p==NULL) return false; LNode *s = (LNode *)malloc(sizeof(LNode)); if(s==NULL) //内存分配失败 return false; s->data = e; s->next = p->next; p->next = s; //将结点s连到p之后 return true; }
下一篇:
归并排序(python实现)