C的鍊錶的概念應用

2021-06-21 12:28:22 字數 1218 閱讀 2515

鍊錶有乙個頭指標變數head,它存放乙個位址,該位址指向乙個元素。鍊錶中每乙個元素都稱為「節點」。每個節點都應包含兩部分,乙個使用者需要用的實際資料和下乙個節點的位址。head指向第乙個節點,第乙個元素又指向第二個節點,直到最後乙個元素,該元素不再指向其他元素,它稱為"表尾",它的位址存放的乙個mull的空位址,鍊錶到此結束。

#include

#define  null 0

struct student

;int main(void)

while (p!=null);

}這是乙個靜態的鍊錶,所有節點都是在程式中定義的,不是臨時開闢的,也不能用完後釋放,這種鍊錶稱為「靜態鍊錶」。

處理動態鍊錶所需的函式:

鍊錶結構都是動態地分配儲存的,即在需要時才開闢乙個節點的儲存單元,怎樣動態的開闢和釋放儲存單元,有以下函式:

void *  malloc(unsigned int n);

其作用是在記憶體的動態儲存區中分配乙個長度為n的連續空間,此函式的值即返回值是乙個指向分配域起始位址的指標,型別為void。如果此函式未能成功執行,如記憶體不夠,則返回null空指標。

void*  calloc(unsigned n,unsigned size);

其作用是在記憶體的動態儲存區中分配n個長度為size的連續空間,函式返回乙個指向分配域起始位址的指標。如果分配不成功,則返回null;用calloc函式可以為一維陣列開闢動態儲存空間,n為陣列元素個數,每個元素長度為size。

void  free(void* p);

其作用是釋放由p指向的記憶體區,使這部分記憶體區能夠被其他辯論賽還有。無返回值。

typedef的使用:使用typedef宣告新的型別名來代替已有的型別名,用新型別去定義變數。

typedef  stuct

int month;

int day;

int year;

}date;

date  birthday;

date* p;還可以進一步:

typedef   int  num[100]   宣告num為整形陣列型別

num  n;定義n為整形陣列變數。

typedef int  (*pointer)()  宣告pointer為指向函式的指標型別,該函式返回整形值

pointer  p1,p2   p1 p2為pointer型別的指標變數

#define   putchar(c)    fputc(c,stdout)

鍊錶的概念

鍊錶的概念 鍊錶是結構體最重要的應用,它是一種非固定長度的資料結構,是一種動態儲存技術,它能夠根據資料的結構特點和數量使用記憶體,尤其適用於資料個數可變的資料儲存。鍊錶有個頭指標變數head,它存放乙個位址。該位址指向乙個元素,鍊錶中每乙個元素稱為節點,每個節點都應包括兩個部分 一為使用者需要的實際...

鍊錶在c中的應用

時隔3天,最近真的有點事偷了個小懶,在此一定要自我檢討下,sorry,listo。現在來談談鍊錶在c重的應用 首先是鍊錶的概念以及意義 鍊錶的出現就可以緩解使用陣列時記憶體的浪費問題,可以更高效的使資料儲存和使用。鍊錶基礎理論 可以將鍊錶的乙個結點看作有資料部分和指標部分構成的,所以,這裡用到結構體...

鍊錶的應用 廣義表 多重鍊錶

廣義表 1 所謂廣義表就是線性表的推廣,怎麼說呢,以前線性表存的是乙個資料元素,現在呢是線性表的結點可以指向另乙個線性表,這就是廣義表啦 typedef struct gnode glist typedef struct gnode glist next gnode 多重鍊錶1 什麼是多重鍊錶,就是...