ElemType data;structLNode *next; }LNode,*LinkList;//尾插法LinkList List_TailInsert(LinkList &L) { ElemType x; L=(LinkList)malloc(sizeof(LNode)); LNode*s,*r=L; printf("请输入单链表各个节点,以9999结束!\n"); scanf("%d",&x);while(x!=9999) { s=(LNode*)malloc(sizeof(LNode...
//问题:设计一个算法,从头节点为head的带表头节点的有序单链表中删除所有数值相同的多余元素并释放节点空间 //思路:单链表已经有序,定义n等于链表的第一个值,向后遍历,若往后有数值相等的,就删除该节点,若遇到数值不相等的,就把值赋给n,这样一直向后 #include "stdio.h" #include<stdlib.h> typedef struct ...
解法一:用p从头至尾扫描单链表,pre指向*p结点的前驱。若p所指结点的值为x,则删除,并让p移向下一个结点,否则让pre、p指针同步后移一个结点。 本题代码如下: 纯文本新窗口 1.void Del_X_1(Linklist &L, ElemType x){ 2.//L为带头的单链表,本算法删除L中所有值为x的结点 ...
【例2-3-37】④设计一个算法,删除带头节点的单链表L中data值在大于或等于min、小于或等于max之间的节点(若表中有这样的节点),同时释放被删节点的空间,这里mi
L=(LinkList)malloc(sizeof(LNode)); LNode*s,*r=L; printf("请输入单链表各个节点,以9999结束!\n"); scanf("%d",&x);while(x!=9999) { s=(LNode*)malloc(sizeof(LNode)); s->data=x; r->next=s; r=s; scanf("%d",&x); ...