#include
#include
#include
#define n 10
typedef struct node
stud;
stud * creat(int n) /*建立新的鍊錶的函式*/
h->name[0]='/0';
h->link=null;
p=h;
for(i=0;i
p->link=s;
printf("請輸入第%d個人的姓名",i+1);
scanf("%s",s->name);
s->link=null;
p=s;
}return(h);
}stud * search(stud *h,char *x) /*查詢函式*/
if(p==null)
printf("沒有查詢到該資料!");
}stud * search2(stud *h,char *x) /*另乙個查詢函式,返回的是上乙個查詢函式的直接前驅結點的指標,*/
/*h為表頭指標,x為指向要查詢的姓名的指標*/
/*其實此函式的演算法與上面的查詢演算法是一樣的,只是多了乙個指標s,並且s總是指向指標p所指向的結點的直接前驅,*/
/*結果返回s即是要查詢的結點的前乙個結點*/
}if(p==null)
printf("沒有查詢到該資料!");
}void del(stud *x,stud *y) /*刪除函式,其中y為要刪除的結點的指標,x為要刪除的結點的前乙個結點的指標*/
main()
{int number;
char fullname[20];
stud *head,*searchpoint,*forepoint;
number=n;
head=creat(number);
printf("請輸入你要刪除的人的姓名:");
scanf("%s",fullname);
searchpoint=search(head,fullname);
forepoint=search2(head,fullname);
del(forepoint,searchpoint);
單鏈表的刪除
time limit 3000ms,memory limit 10000kb,accepted 299,total submissions 494已知a,b和c為三個非遞減有序的線性表,均以單鏈表作為儲存結構。現要求對a表作如下操作 刪去那些既在b表中出現又在c表中出現的元素。試對單鏈表編寫實現上述...
單鏈表的刪除
從乙個動態鍊錶中刪除乙個結點就是將該系欸但從鍊錶中分離出來,並不是真正的從記憶體中將該節點抹去,只需要改變連線關係就行了。重點語句 p1 next p2 next 例子 編寫函式del,在單向鍊錶中刪除乙個結點。分析 本題目所需要的建立鍊錶輸出鍊錶和前幾節都一樣,特殊的是del這個刪除操作的函式。i...
單鏈表的刪除
單鏈表的刪除 1000 ms 10000 kb 593 1380 建立乙個長度為n的單鏈表,刪除鍊錶中所有資料元素為x的結點。資料型別為整型 輸入第一行為鍊錶的長度n 第二行為鍊錶中的資料元素 第三行為要刪除的資料元素x的值。輸出刪除資料x後,單鏈表中的資料元素。樣例輸入 101 2 3 4 5 6...