C語言之單鏈表操作之查詢

2021-07-05 05:25:49 字數 827 閱讀 9986

二、單鏈表的基本運算

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

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()

c語言之單鏈表簡單操作

建立鍊錶有倆種方式,一種是頭插法,一種是尾插法,倆種方法大同小異,在此我介紹尾插法。用圖示的方法很好理解。下面是用尾插法建立鍊錶的 struct student int n 記錄存放資料數目 struct student create p2 next null return head 建立過程結束 ...

C語言之單鏈表實現

鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。相比於線性表順序結構,操作複雜。由於...

C語言之實現單鏈表的基本操作

目錄 1 鍊錶節點的定義 2 鍊錶基操function的宣告 3 鍊錶基操function的定義與實現 3.1 單鏈表的建立 頭插法 3.2 單鏈表的建立 尾插法 3.3 有序單鏈表的建立 3.4 單鏈表的遍歷 3.5 在單鏈表中查詢元素 3.6 在單鏈表中的指定位置後插入元素 3.7 在單鏈表中刪...