結構體 單鏈表

2021-09-27 03:59:26 字數 1526 閱讀 1867

結構體和陣列一樣,都是聚合型別,在進行整體初始化的時候只有一次機會,就是在定義的時候(但是可以區域性初始化)

typedef與結構體

不加typedef時定義結構體:

struct student

student1; //student1是結構體的乙個結構體變數,且student未定義,而結構體的名字叫做student

struct student stu1=;//用結構體的話需要這樣用,加struct student

加上typedef:

typedef是為一種型別取別名,而結構體型別也是一種型別,加上typedef之後就是為結構體取了乙個別名,方便在後面引用

typrdef struct student

student; //加了typedef隻後,student叫做結構體型別,相當於為student這個結構體取了乙個別名叫做student

student stu1=;//加上typedef隻後,只需要用stu就行了

結構體成員

結構體成員可以是變數,陣列,指標,還可以是其他結構體

但是注意:結構體成員可以是其他結構體,但是如果結構體成員是自己本身的話,也就是結構體的自引用,只能以指標的形式,因為指標大小固定(32位是4位元組,64位是8位元組)

struct self_ref;

struct self_ref;

結構體成員的訪問

看用.還是-> 看.或者->前面是什麼,前面是變數就用. 前面是指標就用->

struct a

;struct b

bb;int main()

帶頭節點

typedef struct node

node,*plist;

初始化:

void initlist(plist plist)

plist->next=null;

}

頭插法:

node* getnode(int val)//得到乙個節點

void inserthead(plist plist,int val) // 頭插法

尾插法:

void inserttail(plist plist,int val)

pcur->next = pget;

}

列印:

void show(plist plist)

printf("\n");

}

得到鍊錶的長度:

int getlength(plist plist)

return count;

}

單鏈表結構

include include typedef struct student node node createlink node head else else p next null return head int lenlink node const head while p next null ...

線性結構 單鏈表

鍊錶定義 使用結點來儲存資料元素。鍊錶優缺點 鍊錶中各資料元素的結點位址則不要求是連續的,因此必須同時儲存元素之間的邏輯關係 鍊錶的插入 刪除操作都比較方便,只需修改指標域的指向即可。單鏈表 include include using namespace std 建立結點 template clas...

資料結構 單鏈表 逆置單鏈表

題目 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並返回反轉鍊錶後的頭結點。我們可以借助圖來分析一下 我們定義乙個新的頭結點為head,將begin指向head next,當begin不為空的時候,tmp begin,begin begin next,此時tmp是我們要摘下來的結點。tmp nex...