a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

c語言鏈表操作示例分享

2020-01-26 15:34:43
字體:
供稿:網(wǎng)友

復(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("這是一個線性鏈表試驗程序。/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;
    }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 特黄一级| 天天拍天天操 | 成人在线超碰 | 永久黄网站色视频免费 | 成人免费淫片aa视频免费 | 国产一级免费视频 | 看全黄大色黄大片老人做 | 欧美精品在线一区二区三区 | 欧美成人小视频 | 婷婷精品在线 | 国产欧美精品一区二区 | 久久久精彩视频 | 欧美激情一区二区三级高清视频 | 欧美国产视频 | 亚洲成人av一区二区三区 | 欧美啊v| 日韩一区二区三区在线播放 | 91九色在线观看 | 男人的天堂久久 | 国产精品毛片一区二区在线看 | 嫩草视频在线观看免费 | 成人精品 | 久久久精品网站 | 亚洲综合在线一区 | 色综合一区二区三区 | 久久久国产一区 | 一区二区免费 | 久久免费电影 | 国产精品美女久久久久久久久久久 | 国产欧美日韩 | 超碰97人人人人人蜜桃 | 国产亚洲一区二区精品 | 国产精品8888| 日韩美女中文字幕 | 久久久久成人精品 | www嫩草| 免费一区 | 午夜精品一区二区三区在线播放 | 国产视频一区在线观看 | 亚洲精品国产精品国自产 | 91在线免费看 |