乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C語言單向鏈表的實(shí)現(xiàn)

       隨身Book 2013-11-23

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

          struct note

          {

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

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

          };

       

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

       

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

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

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

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

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

       

      鏈表的建立

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

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

      NULL為止。

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

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

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

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

       

      鏈表建立的步驟:

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

      struct   node

      {

          int   data;

          struct   node  *next;

       };

      struct   note   *p,*p1,*head;

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

       

      第二步:

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

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

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

       

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

      p1-> next=p;

       

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

      p1=p;

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

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

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

         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. }  

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多