#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 鍊錶...