使用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)棧的資料請(qǐng)關(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-09
VisualStudio類文件的管理(類文件的分離)的實(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-02
C++使用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-11
cmake添加一個(gè)庫的實(shí)現(xiàn)步驟
本文主要介紹了cmake添加一個(gè)庫的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
C++實(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

