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

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

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

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

棧的結構定義如下:

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;
}

完整代碼如下:

#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是入棧的個數
    if(initStack(S)==1)
        printf("棧初始化成功\n");
    printf("入棧的元素個數為:");
    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;
}

運行結果如下:

在這里插入圖片描述

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • VC++6.0中創(chuàng)建C++項目的實現(xiàn)步驟

    VC++6.0中創(chuàng)建C++項目的實現(xiàn)步驟

    本文主要介紹了VC++6.0中創(chuàng)建C++項目的實現(xiàn)步驟,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-03-03
  • Qt實現(xiàn)字符串生成二維碼功能

    Qt實現(xiàn)字符串生成二維碼功能

    這篇文章主要介紹了如何利用Qt實現(xiàn)字符串生成二維碼功能,文中的實現(xiàn)過程講解詳細,對我們學習Qt有一定的幫助,需要的可以參考一下
    2022-01-01
  • c語言中exit和return的區(qū)別點總結

    c語言中exit和return的區(qū)別點總結

    小編今天給大家整理了關于c語言中exit和return的不同點及相關基礎知識點,有興趣的朋友們可以跟著學習下。
    2021-10-10
  • C++中函數模板與類模板的簡單使用及區(qū)別介紹

    C++中函數模板與類模板的簡單使用及區(qū)別介紹

    這篇文章介紹了C++中的模板機制,包括函數模板和類模板的概念、語法和實際應用,函數模板通過類型參數實現(xiàn)泛型操作,而類模板允許創(chuàng)建可處理多種數據類型的類,文章還討論了模板的關鍵區(qū)別、注意事項以及它們在實際編程中的應用,感興趣的朋友一起看看吧
    2025-03-03
  • C++11?成員函數作為回調函數的使用方式

    C++11?成員函數作為回調函數的使用方式

    這篇文章主要介紹了C++11?成員函數作為回調函數的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++中對象的常引用、動態(tài)建立和釋放相關知識講解

    C++中對象的常引用、動態(tài)建立和釋放相關知識講解

    這篇文章主要介紹了C++中對象的常引用、動態(tài)建立和釋放相關知識講解,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • 如何用C++實現(xiàn)雙向循環(huán)鏈表

    如何用C++實現(xiàn)雙向循環(huán)鏈表

    本篇文章是對用C++實現(xiàn)雙向循環(huán)鏈表的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++ 中動態(tài)鏈接庫--導入和導出的實例詳解

    C++ 中動態(tài)鏈接庫--導入和導出的實例詳解

    這篇文章主要介紹了C++ 中動態(tài)鏈接庫--導入和導出的實例詳解的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 解決c++?error:crosses?initialization?of?問題

    解決c++?error:crosses?initialization?of?問題

    最近在寫代碼的時候,碰到了?crosses?initialization?of?...?的問題,只因我在?switch?的某個?case?分支下定義了一個變量,于是乎便將這個問題整理一下,需要的朋友可以參考下
    2023-03-03
  • OpenCV外接USB攝像頭的方法

    OpenCV外接USB攝像頭的方法

    這篇文章主要為大家詳細介紹了OpenCV外接USB攝像頭的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

德安县| 会同县| 鄄城县| 淄博市| 柯坪县| 静乐县| 来凤县| 灵宝市| 乐安县| 宿州市| 江门市| 漳浦县| 秀山| 隆回县| 达州市| 天全县| 余干县| 肥东县| 吉安市| 栾城县| 霞浦县| 仲巴县| 东丰县| 台东市| 长白| 长沙县| 宝鸡市| 平昌县| 商都县| 沧源| 海兴县| 丰台区| 光泽县| 榆树市| 金门县| 安溪县| 南安市| 赞皇县| 聊城市| 鄂温| 思茅市|