免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
C語(yǔ)言單向鏈表的實(shí)現(xiàn)

一個(gè)簡(jiǎn)單結(jié)點(diǎn)的結(jié)構(gòu)體表示為:

    struct note

    {

       int  data;              /*數(shù)據(jù)成員可以是多個(gè)不同類(lèi)型的數(shù)據(jù)*/

       struct  note  *next;      /*指針變量成員只能是-個(gè)*/

    };

 

一個(gè)簡(jiǎn)單的單向鏈表的圖示

 

1.鏈表是結(jié)構(gòu)、指針相結(jié)合的-種應(yīng)用,它是由頭、中間、尾多個(gè)鏈環(huán)組成的單方向可伸縮的鏈表,鏈表上的鏈環(huán)我們稱(chēng)之為結(jié)點(diǎn)。

2.每個(gè)結(jié)點(diǎn)的數(shù)據(jù)可用-個(gè)結(jié)構(gòu)體表示,該結(jié)構(gòu)體由兩部分成員組成:數(shù)據(jù)成員與結(jié)構(gòu)指針變量成員。

3.?dāng)?shù)據(jù)成員存放用戶所需數(shù)據(jù),而結(jié)構(gòu)指針變量成員則用來(lái)連接(指向)下-個(gè)結(jié)點(diǎn),由于每-個(gè)結(jié)構(gòu)指針變量成員都指向相同的結(jié)構(gòu)體,所以該指針變量稱(chēng)為結(jié)構(gòu)指針變量。

4.鏈表的長(zhǎng)度是動(dòng)態(tài)的,當(dāng)需要建立-個(gè)結(jié)點(diǎn),就向系統(tǒng)申請(qǐng)動(dòng)態(tài)分配-個(gè)存儲(chǔ)空間,如此不斷地有新結(jié)點(diǎn)產(chǎn)生,直到結(jié)構(gòu)指針變量指向?yàn)榭?NULL)。申請(qǐng)動(dòng)態(tài)分配-個(gè)存儲(chǔ)空間的表示形式為:

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

 

鏈表的建立

   在鏈表建立過(guò)程中,首先要建立第一個(gè)結(jié)點(diǎn),然后不斷地

在其尾部增加新結(jié)點(diǎn),直到不需再有新結(jié)點(diǎn),即尾指針指向

NULL為止。

 設(shè)有結(jié)構(gòu)指針變量   struct note *p,*p1,*head;

      head:用來(lái)標(biāo)志鏈表頭;

  p:在鏈表建立過(guò)程中,p總是不斷先接受系統(tǒng)動(dòng)態(tài)分配的新結(jié)點(diǎn)地址

  p1->next:存儲(chǔ)新結(jié)點(diǎn)的地址。

 

鏈表建立的步驟:

第一步:建立第一個(gè)結(jié)點(diǎn)

struct   node

{

    int   data;

    struct   node  *next;

 };

struct   note   *p,*p1,*head;

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

 

第二步:

      給第-個(gè)結(jié)點(diǎn)成員data賦值并產(chǎn)生第二個(gè)結(jié)點(diǎn)

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

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

 

第三步:將第-個(gè)結(jié)點(diǎn)與第二個(gè)結(jié)點(diǎn)連接起來(lái)

p1-> next=p;

 

第四步:產(chǎn)生第三個(gè)結(jié)點(diǎn)

p1=p;

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

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

以后步驟都是重復(fù)第三、四步,直到給出-個(gè)結(jié)束條件,不再建新的結(jié)點(diǎn)時(shí),要有

   p->next=NULL;它表示尾結(jié)點(diǎn)。

 

 

代碼

  1. #include <stdio.h>  
  2. #include<stdlib.h>  
  3. #define  LEN  sizeof(struct node)  
  4. struct node  
  5. {  
  6. int data;  
  7. struct node  *next;  
  8. };  
  9. main()  
  10. {     struct  node  *p, *pl,* head;  
  11.           head=p=(struct node * )malloc(LEN);  
  12.           scanf("%d",&p->data);/*頭結(jié)點(diǎn)的數(shù)據(jù)成員*/  
  13.           while(p->data!=0)   /*給出0結(jié)束條件,退出循環(huán)*/  
  14.           {    pl=p;  
  15.                p=(struct node * )malloc(LEN);  
  16.                   scanf("%d",&p->data);/*中間結(jié)點(diǎn)數(shù)據(jù)成員*/  
  17.                   pl->next=p;/*中間結(jié)點(diǎn)的指針成員值*/  
  18.           }  
  19.           p-> next=NULL;/*尾結(jié)點(diǎn)的指針成員值*/  
  20.           p=head;/*鏈表顯示*/  
  21.           printf("鏈表數(shù)據(jù)成員是:");  
  22.           while(p->next!=NULL)  
  23.           {  
  24.           printf("%d",p->data);  
  25.           p=p->next;  
  26.           }  
  27.           printf("%d\n",p->data);  
  28. }  

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C和指針學(xué)習(xí)
單鏈表的建立(C語(yǔ)言完整程序)
C語(yǔ)言難點(diǎn)分析整理
C語(yǔ)言結(jié)構(gòu)體應(yīng)用
【轉(zhuǎn)載】C/C++的面試題
你必須知道的495個(gè)C語(yǔ)言問(wèn)題 讀書(shū)筆記
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服