亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

    蓬溪县| 温宿县| 五原县| 长丰县| 宜宾县| 汉寿县| 伊金霍洛旗| 苏州市| 广西| 平邑县| 永安市| 尼木县| 南昌县| 阜康市| 江北区| 班戈县| 石景山区| 江永县| 绥德县| 镇沅| 康保县| 建平县| 友谊县| 明水县| 宁安市| 文成县| 赞皇县| 福贡县| 上饶县| 淮安市| 延长县| 修武县| 通州市| 高邑县| 东莞市| 桦南县| 图木舒克市| 泸西县| 扎赉特旗| 黑水县| 仁化县|