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