最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實例

 更新時間:2017年06月26日 16:15:59   投稿:lqh  
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實例的相關(guān)資料,需要的朋友可以參考下

 C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實例

實例代碼:

# include <stdio.h>
# include <stdlib.h>
typedef struct node //定義鏈表中結(jié)點的結(jié)構(gòu)
{
 int code; 
 struct node *next;
}NODE,*LinkList; 

/*錯誤信息輸出函數(shù)*/
void Error(char *message)
{
 fprintf(stderr,"Error:%s/n",message);
 exit(1);
}

//創(chuàng)建循環(huán)鏈表
LinkList createList(int n)
{
 LinkList head; //頭結(jié)點
 LinkList p; //當(dāng)前創(chuàng)建的節(jié)點
 LinkList tail; //尾節(jié)點
 int i;
 head=(NODE *)malloc(sizeof(NODE));//創(chuàng)建循環(huán)鏈表的頭節(jié)點
 if(!head)
 {
 Error("memory allocation error!/n");
 }
 head->code=1;
 head->next=head;
 tail=head;
 for(i=2;i<n;i++)
 {
 //創(chuàng)建循環(huán)鏈表的節(jié)點
 p=(NODE *)malloc(sizeof(NODE));
 tail->next=p;
 p->code=i;
 p->next=head;
 tail=p;
 }
 return head;
}

第二種方法:

//創(chuàng)建循環(huán)鏈表方法2(軟件設(shè)計師教程書上的方法)
LinkList createList2(int n)
{
 LinkList head,p;
 int i;
 head=(NODE *)malloc(sizeof(NODE));
 if(!head)
 {
 printf("memory allocation error/n");
 exit(1);
 }
 head->code=1;
 head->next=head;
 for(i=n;i>1;--i)
 {
 p=(NODE *)malloc(sizeof(NODE));
 if(!p)
 {
  printf("memory allocation error!/n");
  exit(1);
 }
 p->code=i;
 p->next=head->next;
 head->next=p;
 }
 return head;
}


void output(LinkList head)
{
 LinkList p;
 p=head;
 do
 {
 printf("%4d",p->code);
 p=p->next;
 }
 while(p!=head);
 printf("/n");
}

void main(void)
{
 LinkList head;
 int n;
 printf("input a number:");
 scanf("%d",&n);
 head=createList(n);
 output(head);
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • C語言實現(xiàn)通訊錄的詳細代碼

    C語言實現(xiàn)通訊錄的詳細代碼

    本文詳細講解了C語言實現(xiàn)通訊錄的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C++中的const和constexpr詳解

    C++中的const和constexpr詳解

    C++ const 和 constexpr 的區(qū)別呢,constexpr表示這玩意兒在編譯期就可以算出來(前提是為了算出它所依賴的東西也是在編譯期可以算出來的)。而const只保證了運行時不直接被修改(但這個東西仍然可能是個動態(tài)變量)。下面我們來詳細講解下。
    2016-01-01
  • C語言學(xué)習(xí)進階篇之萬字詳解指針與qsort函數(shù)

    C語言學(xué)習(xí)進階篇之萬字詳解指針與qsort函數(shù)

    之前的指針詳解中,提到過qsort函數(shù),這個函數(shù)是用來排序的,下面這篇文章主要給大家介紹了關(guān)于C語言指針與qsort函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • C++使用read()和write()讀寫二進制文件

    C++使用read()和write()讀寫二進制文件

    以文本形式讀寫文件和以二進制形式讀寫文件的區(qū)別,并掌握了用重載的?>>?和?<<?運算符實現(xiàn)以文本形式讀寫文件,在此基礎(chǔ)上,本節(jié)將講解如何以二進制形式讀寫文件
    2023-10-10
  • 實例講解C++設(shè)計模式編程中State狀態(tài)模式的運用場景

    實例講解C++設(shè)計模式編程中State狀態(tài)模式的運用場景

    這篇文章主要介紹了實例講解C++設(shè)計模式編程中State狀態(tài)模式的運用場景,文章最后的適用性部分則介紹了一些State模式善于處理的情況,需要的朋友可以參考下
    2016-03-03
  • 詳解C++的String類的字符串分割實現(xiàn)

    詳解C++的String類的字符串分割實現(xiàn)

    這篇文章主要介紹了詳解C++的String類的字符串分割實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C語言實現(xiàn)高精度加減法

    C語言實現(xiàn)高精度加減法

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)高精度加減法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++?STL反向迭代器的實現(xiàn)

    C++?STL反向迭代器的實現(xiàn)

    本文主要介紹了C++?STL反向迭代器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C++靜態(tài)庫與動態(tài)庫文件的生成和使用教程

    C++靜態(tài)庫與動態(tài)庫文件的生成和使用教程

    庫文件是計算機上的一類文件,可以簡單的把庫文件看成一種代碼倉庫,它提供給使用者一些可以直接拿來用的變量、函數(shù)和類,下面這篇文章主要給大家介紹了關(guān)于C++靜態(tài)庫與動態(tài)庫文件的生成和使用的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • c++結(jié)合opencv如何實現(xiàn)讀取多張圖片并顯示

    c++結(jié)合opencv如何實現(xiàn)讀取多張圖片并顯示

    這篇文章主要介紹了c++結(jié)合opencv如何實現(xiàn)讀取多張圖片并顯示問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

襄城县| 洪泽县| 新宁县| 昭通市| 重庆市| 湖口县| 四川省| 连州市| 英德市| 凌云县| 博客| 文昌市| 平乐县| 岳西县| 新巴尔虎左旗| 长汀县| 绥阳县| 石林| 松溪县| 雷波县| 怀远县| 杨浦区| 辉县市| 长治市| 太谷县| 观塘区| 全南县| 兴和县| 湖北省| 德令哈市| 道孚县| 吉水县| 浪卡子县| 永定县| 奉化市| 永川市| 绥德县| 汉沽区| 平昌县| 化德县| 唐山市|