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

使用C語言順序表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)棧的代碼示例

 更新時(shí)間:2023年09月22日 09:11:53   作者:gnip  
這篇文章主要給大家介紹了如何使用C語言順序表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)棧,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值,需要的朋友可以參考下

代碼

頭文件、聲明等

#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)文章

  • c語言快速排序算法示例代碼分享

    c語言快速排序算法示例代碼分享

    快速排序使用分治法(Divide and conquer)策略來把一個(gè)串行(list)分為兩個(gè)子串行(sub-lists)
    2014-02-02
  • C語言控制進(jìn)程之進(jìn)程等待詳解

    C語言控制進(jìn)程之進(jìn)程等待詳解

    這篇文章主要介紹了C語言控制進(jìn)程之進(jìn)程等待即回收子進(jìn)程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Qt實(shí)現(xiàn)進(jìn)程界面之間的鼠標(biāo)焦點(diǎ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)

    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)步驟

    這篇文章主要介紹了用pybind11封裝C++結(jié)構(gòu)體作為參數(shù)的函數(shù)實(shí)現(xiàn)步驟,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • C++使用LibCurl實(shí)現(xiàn)Web隱藏目錄掃描功能

    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
  • C語言實(shí)現(xiàn)黎曼和求定積分

    C語言實(shí)現(xiàn)黎曼和求定積分

    這篇文章主要為大家詳細(xì)介紹了用C語言程序?qū)崿F(xiàn)黎曼和求定積分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • cmake添加一個(gè)庫的實(shí)現(xiàn)步驟

    cmake添加一個(gè)庫的實(shí)現(xiàn)步驟

    本文主要介紹了cmake添加一個(gè)庫的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • EasyC++編寫頭文件

    EasyC++編寫頭文件

    這篇文章主要介紹了C++編寫頭文件,在一個(gè)C++程序中,只包含兩類文件——.cpp文件和.h文件。其中,.cpp文件被稱作C++源文件,里面放的都是C++的源代碼;而.h文件則被稱作C++頭文件,里面放的也是C++的源代碼,感興趣的小伙伴一起來看下面文章的詳細(xì)介紹吧
    2021-12-12
  • C++實(shí)現(xiàn)基于reactor的百萬級(jí)并發(fā)服務(wù)器

    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

最新評(píng)論