鍊錶的基礎知識

2021-08-19 17:23:30 字數 1212 閱讀 4040

最近在學資料結構,第二章學的線性表,對於從未接觸過來說的我 一臉懵逼,趕緊把 c pp 關於鍊錶的基礎知識拿過來惡補了一下。

鍊錶的存在是為了克服 用陣列儲存浪費空間的問題,使用鍊錶之後,可以動態的加入,刪除,對於節省 空間有很大的幫助。

下面我們來看一下鍊錶

/*

鍊錶的一些基本知識點:

雖然結構不能含有與本身型別相同的結構,但是可以含有指向同型別結構的 指標,這種定義是定義鍊錶的基礎,

鍊錶中的每一項都包含著在何處能找到下一項的資訊

所以可以這樣來 定義結構

#define tsize 45

struct film;

還需要乙個 單獨的指標儲存第乙個 結構的指標,該指標被稱為 頭指標

頭指標 指向 鍊錶的第一項

所以 每次我們 建立乙個結構之後,我們想加入 新的 節點,我們 可以 令 film->next=current; 我們這樣 構成了鏈式的 結構

然而這種方案能正常執行,還需要乙個指標儲存乙個指標儲存鍊錶中第一項的位址,這時候 頭指標就派上用場了

*/#include#include// 提供malloc() 原型

#include//提供 strcpy()原型

#define tsize 45

struct film;

char * s_gets(char * st,int n);

int main()

// 顯示電影列表

if(head ==null)

printf("no data entered.");

else

printf("here id the movie list:\n");

// 為何重新建立乙個新指標呢? 因為如果使用head 會改變head 中的值,程式就找不到鍊錶的開始處

current=head;

while(current!=null)

//完成任務,釋放已分配的記憶體

current=head;

while(current !=null)

printf("bye!\n");

return 0;

}char * s_gets(char *st ,int n)

return ret_val;

}

鍊錶基礎知識

1.為什麼用linkedlist array是乙個非常有用的資料結構,但是有兩個限制 1 當改變原有array的size的時候需要將原有array的所有元素copy到新array中去 2 由於array的資料儲存在記憶體中是連續空間,導致插入和刪除都會帶來其他資料的移動。鍊錶是由一系列的節點組成,這...

鍊錶基礎知識

鍊錶之前要有一定的c語言基礎,如指標,結構體,分配記憶體malloc等,切勿操之過急。第一次接觸可能有點難度,我是把書上的 反覆敲,反覆看注釋,搞了好幾天,才漸漸懂了。閒話少說,上 include include 要用到malloc struct llist int main printf 聯絡人 ...

鍊錶的基礎知識

鍊錶基礎知識 typedef int datatype typedef struct listnode listnode,pnode 鍊錶的初始化 void slistinit pnode phead 建立新結點 pnode buynewnode datatype data 尾插 void slis...