深刻感覺,基礎很重要,閒暇時間,做簡單鍊錶程式設計練習。
#ifndef __list_h_#define __list_h_#include
#include
typedef
struct
linknodelist
linknode;
linknode* linklistcreate(const
intn);
linknode* linklistreverse(linknode*head);
linknode* linklistreverse1(linknode*head);
int ispalindrome(linknode*head);
#endif
#include "list.h
"int a[5] = ;
/*建立鍊錶 n:鍊錶結點個數
*/linknode* linklistcreate(const
intn)
return
head;}/*
翻轉鍊錶 n:煉表頭節點
*/linknode* linklistreverse(linknode*head)
linknode* pre =null;
linknode* next =null;
linknode* cur = head->next;
while (cur !=null)
head->next =pre;
return
head;}/*
遞迴翻轉鍊錶 n:煉表頭節點
*/linknode* linklistreverse1(linknode*head)
else}/*
判斷是否是回文
*/int ispalindrome(linknode*head)
/*快慢指標
*/linknode* fast = head->next;
linknode* slow = head->next;
while (fast != null && fast->next !=null)
//printf("slow data%d\n", slow->data);
linknode* cur =slow;
linknode* next =null;
linknode* pre =null;
while (cur !=null)
linknode* p1 = head->next;
linknode* p2 =pre;
while(p1 !=null)
//printf("p1 data%d\n", p1->data);
//printf("p2 data%d\n", p2->data);
p1 = p1->next;
p2 = p2->next;
}return0;
}int
main()
//linknode* p1 = linklistreverse1(head);
//while(p1 != null)
//while(head !=null)
return0;
}
程式設計練習 鍊錶必考重點演算法
一 單鏈表反轉 linklist reserve l linklist l 上面這一種是 不算表頭的 表頭里沒有資料 下面這一種是表頭帶資料,表頭也要丟到最後 listnode reverselist listnode phead return preversehead 二 判斷單鏈表是否有環 bo...
C語言程式設計練習53 靜態鍊錶
題目描述 靜態鍊錶是使用順序儲存結構來實現的鍊錶。嚴蔚敏 資料結構 c語言版 在介紹靜態鍊錶時使用的是乙個姓氏列表。圖1是書本上的靜態鏈表示例,圖 a 是初始化後插入了8個姓氏的鍊錶,圖 b 是在第5個元素前插入了 shi 而刪除了 wang 的結果。圖1 靜態鏈表示例 a 修改前的狀態 b 修改後...
鍊錶操作練習
本小題請務必重視,綜合了各種鍊錶操作 各種考試考題 可以做成乙個比較完整的工程,請設計測試程式進行測試,務必自己編寫 1 針對帶表頭結點的單鏈表,試編寫下列函式。1 建立函式create 根據一維陣列a n 建立乙個單鏈表,使單鏈表中各元素的次序與a n 中各元素的次序相同,要求該程式的時間複雜性為...