欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解C語(yǔ)言棧的創(chuàng)建

 更新時(shí)間:2021年07月30日 14:42:41   作者:小尹同學(xué)⁣  
棧只允許在一端進(jìn)行插入或刪除操作的線性表。首先棧是一種線性表,但是限定這種線性表只能在某一端進(jìn)行插入和刪除操作,這篇文章主要介紹了C語(yǔ)言對(duì)棧的實(shí)現(xiàn)基本操作

棧:是限定僅在表尾進(jìn)行插入和刪除操作的線性表!

棧的結(jié)構(gòu)定義如下:

typedef struct Stack
{
    SLDataType *base;//棧底元素的地址
    int top;//棧頂元素的位置
} Stack;

棧的初始化如下:

SLDataType initStack(Stack &S)
{
  S.base=(SLDataType*)malloc(N*sizeof(SLDataType));//申請(qǐng)棧元素的存儲(chǔ)空間
  if(S.base==NULL)
        return -1;
  S.top=0;
  return 1;
}

棧元素的輸入接口:

SLDataType pushStack(Stack &S,int e)//輸入棧的元素
{
    if(S.top==N)
        return 0;
    S.base[S.top]=e;
    S.top++;
    return 1;
}

完整代碼如下:

#include<stdio.h>
#include<stdlib.h>
#define N 30
typedef int SLDataType;
typedef struct Stack
{
    SLDataType *base;//棧底元素的地址
    int top;//棧頂元素的位置
} Stack;
SLDataType initStack(Stack &S)
{
  S.base=(SLDataType*)malloc(N*sizeof(SLDataType));
  if(S.base==NULL)
        return -1;
  S.top=0;
  return 1;
}
SLDataType pushStack(Stack &S,int e)//輸入棧的元素
{
    if(S.top==N)
        return 0;
    S.base[S.top]=e;
    S.top++;
    return 1;
}
void printStack(Stack &S)
{
    int i;
    i=0;
    while(i<S.top)
    {
        printf("%d ",S.base[i]);
        i++;
    }
    printf("\n");
}
int main()
{
    Stack S;
    int i,n,m;//n是入棧的個(gè)數(shù)
    if(initStack(S)==1)
        printf("棧初始化成功\n");
    printf("入棧的元素個(gè)數(shù)為:");
    scanf("%d",&n);
    i=1;
    printf("輸入要入棧的元素:");
    while(i<=n)
    {
        scanf("%d",&m);
        if(pushStack(S,m)==0)
        {
            printf("%d入棧失??!\n",m);
            break;
        }
        i++;
    }
    printf("棧中的元素有:    ");
    printStack(S);//打印棧中的元素
    return 0;
}

運(yùn)行結(jié)果如下:

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C語(yǔ)言中的運(yùn)算符和結(jié)合性問(wèn)題

    C語(yǔ)言中的運(yùn)算符和結(jié)合性問(wèn)題

    這篇文章主要介紹了C語(yǔ)言中的運(yùn)算符和結(jié)合性問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運(yùn)算符講解

    C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運(yùn)算符講解

    這篇文章主要介紹了C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運(yùn)算符講解,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • C++ primer基礎(chǔ)之容器insert

    C++ primer基礎(chǔ)之容器insert

    這篇文章主要介紹了C++ primer基礎(chǔ)之容器insert的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • C++ Opengl圖形顏色功能附源碼下載

    C++ Opengl圖形顏色功能附源碼下載

    這篇文章主要介紹了C++ Opengl圖形顏色功能附源碼下載,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • C++內(nèi)存管理詳解使用方式

    C++內(nèi)存管理詳解使用方式

    內(nèi)存管理是C++最令人切齒痛恨的問(wèn)題,也是C++最有爭(zhēng)議的問(wèn)題,C++高手從中獲得了更好的性能更大的自由,C++菜鳥(niǎo)的收獲則是一遍—遍的檢查代碼和對(duì)C++的痛恨,但內(nèi)存管理在C++中無(wú)處不在,內(nèi)存泄漏幾乎在每個(gè)C++程序中都會(huì)發(fā)生,要想成為C++高手,內(nèi)存管理這關(guān)是必須過(guò)的
    2022-04-04
  • C++11實(shí)現(xiàn)字符串分割的示例

    C++11實(shí)現(xiàn)字符串分割的示例

    本文主要介紹了C++11實(shí)現(xiàn)字符串分割的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語(yǔ)言大小端字節(jié)序存儲(chǔ)模式深入解讀

    C語(yǔ)言大小端字節(jié)序存儲(chǔ)模式深入解讀

    我們知道,當(dāng)編譯器執(zhí)行 “創(chuàng)建變量” 這一代碼時(shí),會(huì)在內(nèi)存中開(kāi)辟空間相應(yīng)的空間來(lái)存儲(chǔ)變量值。而對(duì)于整型變量而言,變量值又是以二進(jìn)制補(bǔ)碼的形式存放的
    2022-09-09
  • C++制作鼠標(biāo)連點(diǎn)器實(shí)例代碼

    C++制作鼠標(biāo)連點(diǎn)器實(shí)例代碼

    大家好,本篇文章主要講的是C++制作鼠標(biāo)連點(diǎn)器實(shí)例代碼,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C語(yǔ)言編寫(xiě)洗牌發(fā)牌程序

    C語(yǔ)言編寫(xiě)洗牌發(fā)牌程序

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言編寫(xiě)洗牌發(fā)牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • vs2022?x64?C/C++和匯編混編(案例代碼)

    vs2022?x64?C/C++和匯編混編(案例代碼)

    這篇文章主要介紹了vs2022?x64?C/C++和匯編混編,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02

最新評(píng)論