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

c語言鏈表操作示例分享

 更新時間:2014年03月06日 10:17:20   作者:  
這篇文章主要介紹了c語言鏈表操作示例,代碼中有注釋,需要的朋友可以參考下

復制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
/*以下是為了構(gòu)建線性鏈表而定義的結(jié)構(gòu)體*/
typedef struct chaink{
    char c;
    struct chaink * next;
    }ck;
ck * chain(ck *,int);
int print(ck *,int);
/*以下是main函數(shù)*/
int main(void){
    printf("這是一個線性鏈表試驗程序。\n");
    ck * head=NULL;
    int k;
    k=sizeof(ck);
    do{
        head=chain(head,k);
        printf("是否要結(jié)束程序?若結(jié)束,請按y/Y;按其他鍵繼續(xù)錄入。\n");
        if(getch()=='y' && getch()=='Y'){
            printf("程序結(jié)束。\n");
            getch();
            break;
            }       
        }while(1);
    return 0;
    }
/*以下是為了演示線性鏈表而試著編寫的程序模塊*/
ck * chain(ck * head,int k){
    ck * next=NULL;/*掃描鏈表時要用到的臨時局部變量*/
    ck * temp=NULL;/*插入新結(jié)點時要用到的臨時局部變量*/
    int i=0;/*隔壁print函數(shù)依賴的一個參數(shù)*/
    if(head==NULL){
        head=(ck*)malloc(k);/*創(chuàng)建一個空的數(shù)據(jù)節(jié)點,第一個數(shù)據(jù)節(jié)點*/
        if(head==NULL){
            printf("malloc內(nèi)存錯誤!");
            getch();
            exit(1);
            }/*檢驗剛剛是否已經(jīng)成功創(chuàng)建數(shù)據(jù)節(jié)點*/
        printf("頭結(jié)點已成功創(chuàng)建,其地址為%p。\n",head);
        head->next=NULL;
        head->c='0'; /*初始化頭結(jié)點*/
        }   
    do{/*以從HEAD結(jié)點之后處插入新數(shù)據(jù)節(jié)點的方式接收錄入的數(shù)據(jù)*/
        printf("是否要錄入新數(shù)據(jù)?若錄入,請按y/Y;按其他鍵結(jié)束錄入。\n");
        if(getch()!='y' && getch()!='Y'){
            printf("錄入結(jié)束。\n");
            getch();
            break;
            }            
        temp=head->next;/*儲存頭節(jié)點指針域的數(shù)據(jù)*/
        head->next=(ck*)malloc(k);/*創(chuàng)建一個新節(jié)點*/
        if(head->next==NULL){
            printf("malloc內(nèi)存錯誤!");
            getch();
            exit(1);
            }/*檢驗剛剛是否已經(jīng)成功創(chuàng)建數(shù)據(jù)節(jié)點*/
        next=head->next;/*掃描到新創(chuàng)建的節(jié)點*/
        next->next=temp;/*給新節(jié)點的指針域賦值*/
        printf("請錄入新數(shù)據(jù)……\n");
        next->c=getch();/*給新節(jié)點的數(shù)據(jù)域賦值*/
        if(next->c==-1){
            printf("系統(tǒng)錄入端錯誤!");
            getch();
            exit(1);
            }
        printf("新數(shù)據(jù)錄入成功。錄入的新數(shù)據(jù)為%c,其數(shù)據(jù)節(jié)點的地址為%p。\n",next->c,next);/*反饋*/
    }while(1);/*以從HEAD結(jié)點之后處插入新數(shù)據(jù)節(jié)點的方式接收錄入的數(shù)據(jù)(結(jié)束)*/
    if(head->next==NULL){/*數(shù)據(jù)打印環(huán)節(jié)*/
        printf("數(shù)據(jù)鏈表里現(xiàn)在沒有數(shù)據(jù)。\n");
        getch();   
    }
    else{
        printf("是否要顯示鏈表中所有的數(shù)據(jù)及其地址?若要顯示,請按y/Y;按其他鍵跳過。\n");
        if(getch()!='y' && getch()!='Y'){
            printf("跳過。\n");
            getch();
            return head;
            }
        printf("現(xiàn)在輸出鏈表的內(nèi)容……\n 序號 數(shù)據(jù) 指針\n");
        for(next=head->next;next!=NULL;next=next->next){
            i=print(next,i);/*調(diào)用打印鏈表用的函數(shù)*/
            }
    }/*數(shù)據(jù)打印環(huán)節(jié)(結(jié)束)*/
    return head;   
    }
/*以下是打印鏈表用的函數(shù)*/
int print(ck * next,int i){
    printf("   %d    %c    %p\n",i,next->c,next);
    i++;
    return i;
    }

相關文章

  • C++STL之string類的使用

    C++STL之string類的使用

    這篇文章主要為大家詳細介紹了C++STL中的string類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • c++ TCHAR轉(zhuǎn)string導致中文缺失或亂碼問題及解決

    c++ TCHAR轉(zhuǎn)string導致中文缺失或亂碼問題及解決

    這篇文章主要介紹了c++ TCHAR轉(zhuǎn)string導致中文缺失或亂碼問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C# 使用反射來實現(xiàn)對象的深度復制方法

    C# 使用反射來實現(xiàn)對象的深度復制方法

    下面小編就為大家?guī)硪黄狢# 使用反射來實現(xiàn)對象的深度復制方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C語言數(shù)據(jù)結(jié)構(gòu)之棧簡單操作

    C語言數(shù)據(jù)結(jié)構(gòu)之棧簡單操作

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之棧簡單操作的相關資料,需要的朋友可以參考下
    2017-06-06
  • C++之函數(shù)的重載

    C++之函數(shù)的重載

    這篇文章主要介紹了c++函數(shù)重載的相關知識,文章講解的非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2021-11-11
  • EasyC++?右值引用

    EasyC++?右值引用

    這篇文章主要介紹了C++?右值引用,右值引用指的是以引用傳遞(而非值傳遞)的方式使用?C++?右值,下面文章將對此詳細介紹,需要的朋友可以參考一下,希望對你有所幫助
    2021-12-12
  • C語言字符串另類用法的實現(xiàn)

    C語言字符串另類用法的實現(xiàn)

    今天小編就為大家分享一篇關于C語言字符串另類用法的實現(xiàn),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • OpenCV透視變換應用之書本視圖矯正+廣告屏幕切換

    OpenCV透視變換應用之書本視圖矯正+廣告屏幕切換

    透視變換是指利用透視中心、像點、目標點三點共線的條件,按透視旋轉(zhuǎn)定律使承影面繞跡線旋轉(zhuǎn)某一角度,破壞原有的投影光線束,仍能保持承影面上投影幾何圖形不變的變換。本文將為大家介紹兩個OpenCV透視變換應用,需要的可以參考一下
    2022-08-08
  • Visual Studio 如何創(chuàng)建C/C++項目問題

    Visual Studio 如何創(chuàng)建C/C++項目問題

    這篇文章主要介紹了Visual Studio 如何創(chuàng)建C/C++項目問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 學好C++必須做到的50條 絕對經(jīng)典!

    學好C++必須做到的50條 絕對經(jīng)典!

    學好C++必須做到的50條,絕對經(jīng)典!想要學好C++的朋友一定要認真閱讀本文,更要做到以下50條
    2016-09-09

最新評論

阿坝| 曲水县| 连江县| 隆昌县| 山阴县| 休宁县| 土默特右旗| 丰县| 景泰县| 额尔古纳市| 高清| 安岳县| 搜索| 桐庐县| 上虞市| 宿迁市| 石首市| 疏勒县| 新巴尔虎左旗| 稻城县| 芒康县| 于田县| 尖扎县| 辽源市| 萍乡市| 汝南县| 抚顺市| 时尚| 且末县| 镇平县| 阳新县| 浦江县| 湘西| 禹州市| 滨海县| 安新县| 五华县| 广德县| 鹿泉市| 鄂州市| 西乡县|