鍊錶程式設計練習

2022-07-22 14:33:15 字數 1625 閱讀 6280

深刻感覺,基礎很重要,閒暇時間,做簡單鍊錶程式設計練習。

#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 中各元素的次序相同,要求該程式的時間複雜性為...