日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C语言单向链表的实现

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言单向链表的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個簡單結點的結構體表示為:

??? struct note

??? {

?????? int? data;????????????? /*數據成員可以是多個不同類型的數據*/

?????? struct? note? *next;????? /*指針變量成員只能是-個*/

??? };

?

一個簡單的單向鏈表的圖示

?

1.鏈表是結構、指針相結合的-種應用,它是由頭、中間、尾多個鏈環組成的單方向可伸縮的鏈表,鏈表上的鏈環我們稱之為結點。

2.每個結點的數據可用-個結構體表示,該結構體由兩部分成員組成:數據成員與結構指針變量成員。

3.數據成員存放用戶所需數據,而結構指針變量成員則用來連接(指向)下-個結點,由于每-個結構指針變量成員都指向相同的結構體,所以該指針變量稱為結構指針變量。

4.鏈表的長度是動態的,當需要建立-個結點,就向系統申請動態分配-個存儲空間,如此不斷地有新結點產生,直到結構指針變量指向為空(NULL)。申請動態分配-個存儲空間的表示形式為:

?????????? (struct? note*)malloc(sizeof(struct? note))

?

鏈表的建立

?? 在鏈表建立過程中,首先要建立第一個結點,然后不斷地

在其尾部增加新結點,直到不需再有新結點,即尾指針指向

NULL為止。

 設有結構指針變量?? struct note *p,*p1,*head;

????? head:用來標志鏈表頭

  p:在鏈表建立過程中,p總是不斷先接受系統動態分配的新結點地址。

  p1->next:存儲新結點的地址。

?

鏈表建立的步驟:

第一步:建立第一個結點

struct?? node

{

??? int?? data;

??? struct?? node? *next;

?};

struct?? note?? *p,*p1,*head;

head=p1=p=(struct? node? *)malloc(sizeof(struct node);

?

第二步:

????? 給第-個結點成員data賦值并產生第二個結點

scanf(“%d”,&p->data);  /*輸入10*/

p=(struct? node? *)malloc(sizeof(struct node);

?

第三步:將第-個結點與第二個結點連接起來

p1-> next=p;

?

第四步:產生第三個結點

p1=p;

scanf(“%d”,&p->data);/*輸入8*/

p=(struct? node? *)malloc(sizeof(struct node);

以后步驟都是重復第三、四步,直到給出-個結束條件,不再建新的結點時,要有

?? p->next=NULL;它表示尾結點。

?

?

代碼

#include <stdio.h>
#include<stdlib.h>
#define  LEN  sizeof(struct node)
struct node
{
int data;
struct node  *next;
};
main()
{     struct  node  *p, *pl,* head;head=p=(struct node * )malloc(LEN);scanf("%d",&p->data);/*頭結點的數據成員*/while(p->data!=0)   /*給出0結束條件,退出循環*/{    pl=p;p=(struct node * )malloc(LEN);scanf("%d",&p->data);/*中間結點數據成員*/pl->next=p;/*中間結點的指針成員值*/}p-> next=NULL;/*尾結點的指針成員值*/p=head;/*鏈表顯示*/printf("鏈表數據成員是:");while(p->next!=NULL){printf("%d",p->data);p=p->next;}printf("%d\n",p->data);
}

總結

以上是生活随笔為你收集整理的C语言单向链表的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。