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

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

    • 分享

      一步一步教你從零開(kāi)始寫C語(yǔ)言鏈表——構(gòu)建一個(gè)鏈表

       靜幻堂 2018-09-03
      ccc云志 2018-09-02 18:28:35

      今天小編給大家?guī)?lái)c語(yǔ)言難點(diǎn)--鏈表的講解,一步一步教你從零開(kāi)始寫C語(yǔ)言鏈表---構(gòu)建一個(gè)鏈表。

      一步一步教你從零開(kāi)始寫C語(yǔ)言鏈表——構(gòu)建一個(gè)鏈表

      為什么要學(xué)習(xí)鏈表?

      鏈表主要有以下幾大特性:

      1、解決數(shù)組無(wú)法存儲(chǔ)多種數(shù)據(jù)類型的問(wèn)題。

      2、解決數(shù)組中,元素個(gè)數(shù)無(wú)法改變的限制(C99的變長(zhǎng)數(shù)組,C++也有變長(zhǎng)數(shù)組可以實(shí)現(xiàn))。

      3、數(shù)組移動(dòng)元素的過(guò)程中,要對(duì)元素進(jìn)行大范圍的移動(dòng),很耗時(shí)間,效率也不高。

      先來(lái)感性的認(rèn)識(shí)一下鏈表,我們先來(lái)認(rèn)識(shí)下簡(jiǎn)單的鏈表:

      一步一步教你從零開(kāi)始寫C語(yǔ)言鏈表——構(gòu)建一個(gè)鏈表

      從這幅圖我們得出以下信息:

      這個(gè)簡(jiǎn)單鏈表的構(gòu)成:

      頭指針(Header),若干個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)包括了數(shù)據(jù)域和指針域),最后一個(gè)節(jié)點(diǎn)要指向空。

      實(shí)現(xiàn)原理:頭指針指向鏈表的第一個(gè)節(jié)點(diǎn),然后第一個(gè)節(jié)點(diǎn)中的指針指向下一個(gè)節(jié)點(diǎn),然后依次指到最后一個(gè)節(jié)點(diǎn),這樣就構(gòu)成了一條鏈表。

      接下來(lái)看看鏈表的數(shù)據(jù)結(jié)構(gòu):


      struct list_node
      {
      int data ; //數(shù)據(jù)域,用于存儲(chǔ)數(shù)據(jù)
      struct list_node *next ; //指針,可以用來(lái)訪問(wèn)節(jié)點(diǎn)數(shù)據(jù),也可以遍歷,指向下一個(gè)節(jié)點(diǎn)
      };

      那么如何來(lái)創(chuàng)建一個(gè)鏈表的一個(gè)節(jié)點(diǎn)呢?

      我們寫個(gè)程序演示一下:


      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      struct list_node
      {
      int data ;
      struct list_node *next ;
      };

      typedef struct list_node list_single ;

      int main(void)
      {
      list_single *node = NULL ; //1、首先,當(dāng)然是定義一個(gè)頭指針
      node = (list_single *)malloc(sizeof(list_single)); //2、然后分配內(nèi)存空間
      if(node == NULL){
      printf("malloc fair! ");
      }
      memset(node,0,sizeof(list_single)); //3、清一下
      node->data = 100 ; //4、給鏈表節(jié)點(diǎn)的數(shù)據(jù)賦值
      node->next = NULL ; //5、將鏈表的指針域指向空
      printf("%d ",node->data);
      free(node);
      return 0 ;
      }

      那么,這僅僅只是創(chuàng)建一個(gè)鏈表中的一個(gè)節(jié)點(diǎn),為了好看,我們把創(chuàng)建節(jié)點(diǎn)封裝成函數(shù),以后想創(chuàng)建多少個(gè)節(jié)點(diǎn),我們就可以反復(fù)調(diào)用一個(gè)函數(shù)來(lái)創(chuàng)建,會(huì)很方便:


      list_single *create_list_node(int data)
      {
      list_single *node = NULL ;
      node = (list_single *)malloc(sizeof(list_single));
      if(node == NULL){
      printf("malloc fair! ");
      }
      memset(node,0,sizeof(list_single));
      node->data = 100 ;
      node->next = NULL ;
      return node ;
      }

      接下來(lái)在程序上完成的程序:


      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      struct list_node
      {
      int data ;
      struct list_node *next ;
      };

      typedef struct list_node list_single ;
      list_single *create_list_node(int data)
      {
      list_single *node = NULL ;
      node = (list_single *)malloc(sizeof(list_single));
      if(node == NULL){
      printf("malloc fair! ");
      }
      memset(node,0,sizeof(list_single));
      node->data = 100 ;
      node->next = NULL ;
      return node ;
      }
      int main(void)
      {
      int data = 100 ;
      list_single *node_ptr = create_list_node(data); //創(chuàng)建一個(gè)節(jié)點(diǎn)
      printf("node_ptr->data=%d ",node_ptr->data); //打印節(jié)點(diǎn)里的數(shù)據(jù)
      printf("node_ptr->next=%d ",node_ptr->next);
      free(node_ptr);
      return 0 ;
      }

      執(zhí)行結(jié)果 :

      一步一步教你從零開(kāi)始寫C語(yǔ)言鏈表——構(gòu)建一個(gè)鏈表

      這樣我們就完成一個(gè)鏈表節(jié)點(diǎn)的創(chuàng)建了,那么它現(xiàn)在的樣子如下圖:

      鏈表的結(jié)構(gòu)里,數(shù)據(jù)存儲(chǔ)了100,因?yàn)檫@個(gè)鏈表只有一個(gè)節(jié)點(diǎn),所以它的指針域指向了NULL。

      一步一步教你從零開(kāi)始寫C語(yǔ)言鏈表——構(gòu)建一個(gè)鏈表

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多