鍊錶的c語言實現(三)

2021-03-31 22:53:42 字數 1145 閱讀 1460

單鏈表的c語言實現(2)

二、單鏈表的基本運算

建立了乙個單鏈表之後,如果要進行一些如插入、刪除等操作該怎麼辦?所以還須掌握一些單鏈表的基本演算法,來實現這些操作。單鏈表的基本運算包括:查詢、插入和刪除。下面我們就一一介紹這三種基本運算的演算法,並結合我們建立單鏈表的例子寫出相應的程式。

1、查詢

對單鏈表進行查詢的思路為:對單鏈表的結點依次掃瞄,檢測其資料域是否是我們所要查好的值,若是返回該結點的指標,否則返回null。

因為在單鏈表的鏈域中包含了後繼結點的儲存位址,所以當我們實現的時候,只要知道該單鏈表的頭指標,即可依次對每個結點的資料域進行檢測。

以下是應用查詢演算法的乙個例子:

#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;ilink=s;

printf("請輸入第%d個人的姓名",i+1);

scanf("%s",s->name);

s->link=null;

p=s;

}return(h);

}stud * search(stud *h,char *x) /*查詢鍊錶的函式,其中h指標是鍊錶的表頭指標,x指標是要查詢的人的姓名*/

if(p==null)

printf("沒有查詢到該資料!");

}main()

{int number;

char fullname[20];

stud *head,*searchpoint; /*head是表頭指標,searchpoint是儲存符合條件的結點位址的指標*/

number=n;

head=creat(number);

printf("請輸入你要查詢的人的姓名:");

scanf("%s",fullname);

searchpoint=search(head,fullname); /*呼叫查詢函式,並把結果賦給searchpoint指標*/

鍊錶的C語言實現

編輯 c巨集例項 以下 摘自linux核心2.6.21.5原始碼 部分 展示了鍊錶的另一種實現思路,未採用ansi c標準,採用gnu c標準,遵從gpl版權許可。struct list head define list head init name define list head name st...

雙向鍊錶C語言實現

ifndef stdlist h define stdlist h typedef struct tagstdnode stdnode,lpstdnode typedef struct tagstdlist stdlist,lpstdlist 鍊錶資料結構 struct tagstdnode 鍊錶節...

線性鍊錶 C語言實現

include include define error 0 define ok 1 define equal 1 define overflow 1 define list init size 100 define listincrement 10 struct stustu 50 typedef...