C C 鍊錶構建 遍歷

2021-10-05 19:56:12 字數 1634 閱讀 4157

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 ...