1、鍊錶的概述、簡單構建、遍歷(無頭鍊錶)
#pragma warning(disable:4996)
#include #include #include // 定義乙個使用者物件
struct user
;// 準備四個user物件
user us[4] = ,,,
,};// 查詢鍊錶中id為1的物件
user* find(user* head, int id);
/* 鍊錶:
1、什麼是鍊錶?
把若干個物件用指標連起來,形成乙個鏈狀的資料結構,成為鍊錶
2、特徵
煉表頭:指煉表中的第乙個物件。只需要乙個煉表頭,就能訪問所有的串起來的物件
鍊錶尾:指煉表中的最後乙個物件。 它的next必須設為空指標null
3、鍊錶的遍歷:下面while示列
*/int main()
printf("\n");
int input_a = 0;
printf("請輸入要查詢的id>>>\n");
scanf("%d", &input_a);
// 查詢鍊錶中id為1的物件
user* userp = find(&us[0], input_a);
// 如果鍊錶中查詢到了值就列印
if (userp)
else
system("pause");
}user* find(user* head, int id)
if (!p->next) break;
p = p->next;
}return null;
}
2、有頭鍊錶:用乙個固定的頭節點來指代整個鍊錶,所有的物件掛載這個頭節點下面,而頭節點本身不包含有效資料
#include #include struct user
;// 有頭鍊錶的定義:將乙個物件作為節點,並把成員next初始化為null
// user head_user = ; // 0就是null
// 或者指定只定義next為空指標
user head_user = ;
// 往頭節點新增user物件(把物件附加到鍊錶的開頭)
void add(user* user);
// 往尾節點新增user物件(把物件附加到鍊錶的末尾)
void insert(user* user);
/* 有頭鍊錶:
定義:用乙個固定的頭節點來指代整個鍊錶,所有的物件掛載這個頭節點下面,
而頭節點本身不包含有效資料
構造:除錯檢視鍊錶資料: 進入除錯f5 => 調出監視視窗 => 搜尋鍊錶名稱
*/int main() ;
insert(&user);
user user2 = ;
insert(&user2);
return 0;
}// 往頭節點新增user物件(把物件附加到鍊錶的開頭)
void add(user* user)
// 往尾節點新增user物件(把物件附加到鍊錶的末尾)
void insert(user* user)
(鍊錶構建)鍊錶逆序
一直煉表頭結點指標head,將鍊錶逆序。不可申請額外空間 include using namespace std struct listnode int main 實際最終執行的 include using namespace std struct listnode 這個建構函式有點沒看懂,是一種什...
鍊錶的構建
1.鍊錶的構建及其內容的輸出 建立乙個有若干個學生資訊的單向鍊錶,並對鍊錶進行查詢和輸出。學生資訊包括學號 姓名 一門課程成績。從鍵盤輸入若干學生資訊,以學號輸入0作為結束標記。其中,假設有效分數都在0 100之間。輸出所有學生的資訊。每個學生的資訊佔據一行。如果鍊錶為空,則輸出 linklist ...
C C 鍊錶詳解
前言 該文章內容的第一大塊是單獨功能的講述,比如鍊錶的插入,刪除,查詢等操作 第二大塊是整個鍊錶的乙個完整操作示例。這兩個模組沒有任何關聯,以防誤解。1 準備內容 include include include 2 結構體我們鍊錶需要儲存的資料 typedef struct node person ...