鍊錶基本操作集合

2021-10-04 01:58:39 字數 1365 閱讀 9428

**的背景是這樣的,乙個鍊錶,裡面存著圖書的資訊,圖書的資訊有書名,作者姓名,出版社,年份,按字典序公升序排列,按書名的關鍵字刪除和查詢書本資訊。

typedef

struct infobook;

typedef book* bookptr;

bookptr first=

null

,cur,pre,tempptr;

void

add(bookptr a)

//判斷頭節點是否需要改變if(

strcmp

(first->book_name,a->book_name)

>0)

//從第二個節點開始往後跑,記錄前驅節點

pre=first;

cur=first->next;

while

(cur!=

null

&&strcmp

(cur->book_name,a->book_name)

<0)

pre->next=a;

a->next=cur;

}

void

delete

(char keyword)

//如果當前鍊錶沒有清空,那就接著往後跑,記錄前驅節點

if(first)

else}}

}

void

find

(char keyword)

}}

//輸出到檔案裡面

void

print_link

(wordptr head,

char

* s)

}//輸出到控制台

void

print_link

(wordptr head)

}

void

print_link

(wordptr head)

}

1.插入的幾個注意點如下:

1)當前待插入鍊錶是否為空

2)鍊錶插要不要插在當前頭節點的前面,即更換頭節點

3)節點插在第二個節點或者往後的位置又該怎麼做

2.刪除的幾個注意點如下:

1)要不要刪第乙個點

2)往後怎麼刪除

3.從這道題的情況來看,比較複雜的就是新增和刪除節點,也就是需要改動鍊錶的結構;而最容易出錯的還是新增節點那裡

4.總之就是,需要改動鍊錶結構時,有3個注意點

1)鍊錶是不是空的

2)頭節點要怎麼改

3)非頭結點要怎麼改

鍊錶基本操作

include include string h include typedef struct stust void xj st h 生成單鏈表 l l null void shc st h 輸出鍊錶 printf d n h d void chr st h 按大小插入元素 else h h l v...

鍊錶基本操作

動態記憶體的相關知識int p null 定義指標變數 p int malloc sizeof int 申請記憶體空間,並且進行強制型別轉換 p 3 使用指標變數 typedef struct list typedef struct listnode listpointer struct listn...

鍊錶基本操作

鍊錶就是c中利用結構體,將資料和下乙個結構體的位址封裝在乙個結構體中形成乙個節點,這些節點組合起來就是乙個基礎的鍊錶,根據需要可以擴充套件其中的內容來實現不同的需求。實現乙個鍊錶需要定義節點,建立,初始化,插入,刪除這些基本操作。include stdafx.h include stdlib.h i...