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

c語言鏈表操作示例分享

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

復(fù)制代碼 代碼如下:

#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("這是一個線性鏈表試驗(yàn)程序。\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é)點(diǎn)時要用到的臨時局部變量*/
    int i=0;/*隔壁print函數(shù)依賴的一個參數(shù)*/
    if(head==NULL){
        head=(ck*)malloc(k);/*創(chuàng)建一個空的數(shù)據(jù)節(jié)點(diǎn),第一個數(shù)據(jù)節(jié)點(diǎn)*/
        if(head==NULL){
            printf("malloc內(nèi)存錯誤!");
            getch();
            exit(1);
            }/*檢驗(yàn)剛剛是否已經(jīng)成功創(chuàng)建數(shù)據(jù)節(jié)點(diǎn)*/
        printf("頭結(jié)點(diǎn)已成功創(chuàng)建,其地址為%p。\n",head);
        head->next=NULL;
        head->c='0'; /*初始化頭結(jié)點(diǎn)*/
        }   
    do{/*以從HEAD結(jié)點(diǎn)之后處插入新數(shù)據(jù)節(jié)點(diǎn)的方式接收錄入的數(shù)據(jù)*/
        printf("是否要錄入新數(shù)據(jù)?若錄入,請按y/Y;按其他鍵結(jié)束錄入。\n");
        if(getch()!='y' && getch()!='Y'){
            printf("錄入結(jié)束。\n");
            getch();
            break;
            }            
        temp=head->next;/*儲存頭節(jié)點(diǎn)指針域的數(shù)據(jù)*/
        head->next=(ck*)malloc(k);/*創(chuàng)建一個新節(jié)點(diǎn)*/
        if(head->next==NULL){
            printf("malloc內(nèi)存錯誤!");
            getch();
            exit(1);
            }/*檢驗(yàn)剛剛是否已經(jīng)成功創(chuàng)建數(shù)據(jù)節(jié)點(diǎn)*/
        next=head->next;/*掃描到新創(chuàng)建的節(jié)點(diǎn)*/
        next->next=temp;/*給新節(jié)點(diǎn)的指針域賦值*/
        printf("請錄入新數(shù)據(jù)……\n");
        next->c=getch();/*給新節(jié)點(diǎn)的數(shù)據(jù)域賦值*/
        if(next->c==-1){
            printf("系統(tǒng)錄入端錯誤!");
            getch();
            exit(1);
            }
        printf("新數(shù)據(jù)錄入成功。錄入的新數(shù)據(jù)為%c,其數(shù)據(jù)節(jié)點(diǎn)的地址為%p。\n",next->c,next);/*反饋*/
    }while(1);/*以從HEAD結(jié)點(diǎn)之后處插入新數(shù)據(jù)節(jié)點(diǎn)的方式接收錄入的數(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;
    }

相關(guān)文章

  • C++STL之string類的使用

    C++STL之string類的使用

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

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

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

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

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

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

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

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

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

    EasyC++?右值引用

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

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

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

    OpenCV透視變換應(yīng)用之書本視圖矯正+廣告屏幕切換

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

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

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

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

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

最新評論

万源市| 镇平县| 大安市| 贵定县| 堆龙德庆县| 威远县| 桂阳县| 通榆县| 漯河市| 台北县| 南安市| 禄劝| 苗栗市| 沂源县| 巴塘县| 新乐市| 饶平县| 饶平县| 顺义区| 松原市| 平遥县| 靖宇县| 高安市| 株洲县| 彭阳县| 庆安县| 南汇区| 瑞昌市| 延寿县| 竹山县| 甘泉县| 沅江市| 彭泽县| 拜泉县| 区。| 高雄市| 札达县| 含山县| 前郭尔| 茌平县| 洛阳市|