單鏈表的刪除

2021-04-20 00:09:16 字數 1104 閱讀 9729

#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...