使用C語言順序表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)棧的代碼示例
代碼
頭文件、聲明等
#include<stdio.h> #include<assert.h> #include<stdlib.h> #define true 1 #define false 0 #define bool char #define MAX_SIZE 10 //鏈表數(shù)據(jù)類型 typedef int ElementType; typedef struct Stack { ElementType data[MAX_SIZE]; int top;//棧頂指針(數(shù)組下標(biāo)) } Stack; bool initStack(Stack* S); bool push(Stack* S, ElementType data); bool pop(Stack* S); bool getTop(Stack* S, ElementType* x);
main函數(shù)
int main() { Stack S; initStack(&S); push(&S, 1); push(&S, 2); push(&S, 3); ElementType x; pop(&S); getTop(&S, &x); printf("%d", x); return 0; }
初始化
bool initStack(Stack* S) { for (int i = 0; i < MAX_SIZE; i++) { S->data[i] = 0; } S->top = -1; return true; }
判斷為空
bool isEmpty(Stack* S) { if (S->top == -1) { return true; } return false; }
入棧
bool push(Stack* S, ElementType data) { if (S->top == MAX_SIZE - 1) { return false; } S->data[++(S->top)] = data; return true; }
出棧
bool pop(Stack* S) { if (S->top == -1) { return false; } S->data[S->top] = 0; S->top--; return true; }
獲取棧頂元素
bool getTop(Stack* S, ElementType *x) { if (S->top == -1) { return false; } *x = S->data[S->top]; return true; }
以上就是使用C語言順序表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)棧的代碼示例的詳細(xì)內(nèi)容,更多關(guān)于C語言實(shí)現(xiàn)棧的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Qt實(shí)現(xiàn)進(jìn)程界面之間的鼠標(biāo)焦點(diǎn)切換
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)進(jìn)程界面之間的鼠標(biāo)焦點(diǎn)切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09VisualStudio類文件的管理(類文件的分離)的實(shí)現(xiàn)
在使用?Visual?Studio?開發(fā)項(xiàng)目的時(shí)候,學(xué)會(huì)進(jìn)行“類文件的分離”十分重要,本文主要介紹了VisualStudio類文件的管理(類文件的分離)的實(shí)現(xiàn),感興趣的可以了解一下2024-03-03使用pybind11封裝C++結(jié)構(gòu)體作為參數(shù)的函數(shù)實(shí)現(xiàn)步驟
這篇文章主要介紹了用pybind11封裝C++結(jié)構(gòu)體作為參數(shù)的函數(shù)實(shí)現(xiàn)步驟,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02C++使用LibCurl實(shí)現(xiàn)Web隱藏目錄掃描功能
LibCurl是一個(gè)開源的免費(fèi)的多協(xié)議數(shù)據(jù)傳輸開源庫,該框架具備跨平臺(tái)性,開源免費(fèi),并提供了包括HTTP、FTP、SMTP、POP3等協(xié)議的功能,本文將給大家介紹C++使用LibCurl實(shí)現(xiàn)Web隱藏目錄掃描功能2023-11-11cmake添加一個(gè)庫的實(shí)現(xiàn)步驟
本文主要介紹了cmake添加一個(gè)庫的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06C++實(shí)現(xiàn)基于reactor的百萬級(jí)并發(fā)服務(wù)器
本文介紹了基于Reactor模式的百萬級(jí)并發(fā)服務(wù)器,使用epoll進(jìn)行高效I/O多路復(fù)用,支持多個(gè)端口的監(jiān)聽,并通過回調(diào)機(jī)制處理每個(gè)連接的接收和發(fā)送操作,需要的朋友可以參考下2025-02-02