C鍊錶基礎

2022-09-23 08:03:08 字數 1644 閱讀 5367

#include

struct node ;

// 建立煉表頭結點

struct node* create_list_head(void)

head ->next = null;

printf("head created ok.\n");

return head;

}// 頭部插入鍊錶結點

int insert_list_head(struct node* head, int data)

temp = (struct node*)malloc(sizeof(node));

if(temp == null)

temp->data = data;

temp->next = head->next; // 新節點指標域指向head 的next節點

head->next = temp; // 頭節點的指標域指向temp

return 0;

}// 尾部插入鍊錶節點

int insert_list_tail(struct node* head, int data)

temp = (struct node*)malloc(sizeof(node));

if(temp == null)

temp->data = data;

temp->next = null;

curr = head;

while(curr->next)

curr->next = temp; // 在其後插入

return 0;

}// 刪除指定資料域的節點

int delete_list_node(struct node* head, int data)

while(curr)

prev = prev->next;

curr = curr->next;

} if(!flag)

return 0;

}//鍊錶輸出

int print_list(struct node* head)

printf("list data: ");

while(curr->next)

printf("\n");

return 0;

}// 鍊錶逆序(反轉)

// 思路:由頭結點拿出第乙個節點得到:

// 包含頭結點的一段鍊錶a,

// 然後把剩下的鍊錶b從頭到尾,每拿出乙個就用頭插法,

// 插入a的頭結點和第乙個有效節點之間,從而達到逆序

int reserve_list(struct node* head)

return 0;

}int main()

; list1 = create_list_head();

list2 = create_list_head();

for(int i = 0; i < sizeof(a)/sizeof(a[0]); i++)

print_list(list1);

print_list(list2);

delete_list_node(list1, 30);

print_list(list1);

reserve_list(list2);

print_list(list2);

}

鍊錶基礎 c

鍊錶有動態和靜態兩種 1.動態 動態鍊錶可以帶頭結點 head 也可以不帶,動態的寫法要先申請空間 申請空間有2種寫法 1 malloc 標頭檔案stdlib.h int p int malloc sizeof int node p node malloc sizeof node 因為malloc返...

C語言基礎 鍊錶

參考清華大學軟體學院 諶衛軍 c語言程式設計 課件 1 鍊錶 1.1 鍊錶的基本概念 定義如下的結構體型別 struct train tag 2 對鍊錶的操作 2.1 建立動態鍊錶 例 建立乙個鍊錶,並輸入每乙個結點的各種描述資訊 貨櫃編號 貨物名稱 貨物重量 發貨地點 到貨時間等 直到使用者輸入的...

C 實現鍊錶基礎功能

include include include include define ok 1 define error 0 define true 1 define false 0 using namespace std typedef int elmetype typedef int status 鍊錶...