中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言數據結構中的棧該怎么理解

發布時間:2022-01-04 00:22:55 來源:億速云 閱讀:122 作者:柒染 欄目:開發技術

這期內容當中小編將會給大家帶來有關C語言數據結構中的棧該怎么理解,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

    棧的鏈式實現

    主要內容

    (1) 棧包含7個元素,依次是67,3,88,6,1,7,0,采用尾插入法創建 棧,為該棧設置兩個指針,一個bottom和一個top指針;

    (2) 入棧函數push,該函數完成向棧中插入元素的功能,利用push函數,將數字-9插入到棧內,并將棧里的元素遍歷;

    (3) 出棧函數pop,該函數完成從棧中刪除元素的功能,利用pop函數,刪除此時棧里面的3個元素,并遍歷棧;

    (4) 函數length,求出此時棧內元素的個數。

    代碼實現:

    #include<stdio.h>
    #include<stdlib.h>
    struct node
    {
    	int date;
    	struct node *next;
    };
    struct stack
    {
    	struct node *bottom;
    	struct node *top;
    }s;
    struct stack *creat(struct stack *s);              //創建棧
    void  push(struct stack *s,int e);   //入棧
    void print(struct stack *s);       //打印輸出
    void pop(struct stack *s);         //出棧
    void length(struct stack *s);      //輸出棧的長度
    int main()
    {
    	struct stack *s;
    	int e;
    	s=creat(s);
    	push(s,67);
    	push(s,3);
        push(s,88);
        push(s,6);
        push(s,1);
        push(s,7);
        push(s,0);
        printf("初始棧元素為:");
        print(s);
        printf("\n");
        printf("\n");
        push(s,-9);
        printf("插入元素后:");
        print(s);
        printf("\n");
        printf("\n");
        pop(s);
        pop(s);
        pop(s);
        printf("刪除元素后:");
        print(s);
        printf("\n");
        printf("\n");
        length(s);
    	return 0;
    }
    struct stack *creat(struct stack *s)
    {
    	s=(struct stack *)malloc(sizeof(struct stack ));
    	s->bottom=s->top=(struct node *)malloc(sizeof(struct node));
    	s->top->next=NULL;
        s->bottom->next=NULL;
    	return s;
    }
    void  push(struct stack *s,int e)//進棧
    {
        struct node *p;
        p=(struct node *)malloc(sizeof(struct node));
    	p->date=e;
    	p->next=NULL;
    	s->top->next=p;
    	s->top=p;
    }
    void pop(struct stack *s)// 出棧
    {
       struct node *p,*q;
       p=s->bottom;
       while(p->next!=NULL)
         {
              q=p;
              p=p->next;
              
         }
        q->next=NULL;
        s->top=q;
    }
    void print(struct stack *s)//打印輸出
    {
        struct node *p = s->bottom->next;
    	while(p!=NULL)
    	{
    		printf("%4d",p->date);
    		p=p->next;
    	}
    }
    
    void length(struct stack *s)//計算長度
    {
       struct node *p=s->bottom->next;
       int i=0;
       while(p!=NULL)
        {
            i++;
            p=p->next;
        }
       printf("此時棧的長度為:%4d",i);
    }

    上述就是小編為大家分享的C語言數據結構中的棧該怎么理解了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    田东县| 台湾省| 壤塘县| 黑水县| 武胜县| 禹州市| 黎城县| 孝义市| 密云县| 信阳市| 阜康市| 西华县| 三江| 赣榆县| 商南县| 安溪县| 永靖县| 周宁县| 溆浦县| 民丰县| 闸北区| 高唐县| 黔江区| 衡东县| 获嘉县| 嘉定区| 和平区| 家居| 绿春县| 大理市| 义马市| 盐城市| 西盟| 苍山县| 赣州市| 依安县| 九龙城区| 波密县| 温州市| 勐海县| 晋州市|