資料結構 棧的簡單理解以及對棧的基本操作

2021-08-19 09:28:04 字數 1627 閱讀 7017

先來簡單的了解一下棧

1.棧:一種特殊的線性表,其實只允許在固定的一端進行插入或刪除操作。進行資料插入和刪除的一端稱為棧頂,另一端稱為棧底。不含任何元素的棧稱為空棧,棧又稱為

後進先出的線性表。

2.順序棧和順序表資料成員相同,不同之處:

順序棧的入棧和出棧操作只允許對當前棧頂進行操作!

// 棧的初始化

void stackinit(stack* s);

// 入棧

void stackpush(stack* s, datatype data);

// 出棧

void stackpop(stack* s);

// 獲取棧頂元素

datatype stacktop(stack* s);

// 獲取棧中元素個數

int stacksize(stack* s);

// 檢測棧是否為空

int stackempty(stack* s);

//列印棧

void stackprint(stack* s);

#include"stack.h"

//初始化棧

void stackinit(stack* s)

s->_top = (stack*)malloc(sizeof(stack));

s->_top = 0;

}//入棧

void stackpush(stack* s, datatype data)

s->_array[s->_top] = data;

++s->_top;

}//出棧

void stackpop(stack* s)

if (s->_top == 0)

s->_top--;

}//列印棧頂元素

datatype stacktop(stack* s)

return s->_array[s->_top - 1];

}//列印棧的元素個數

int stacksize(stack* s)

return s->_top;

}//判斷元素是否為空

int stackempty(stack* s)

if (s->_top == 0)

return 1;

}//列印棧

void stackprint(stack* s)

printf("\n");

}

#include"stack.h"

void test()

int main()

資料結構 棧以及出棧演算法

棧 stack 在電腦科學中是限定僅在表尾進行插入或刪除操作的線性表。棧是一種 資料結構 是只能在某一端插入和刪除的特殊 線性表。它按照後進先出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料 最後乙個資料被第乙個讀出來 棧是允許在同一端進行插入和刪除操作...

資料結構 對於棧的理解

棧的特點 棧的表示 判滿判空 入棧 push 出棧 pop 例 用乙個陣列實現兩個堆疊 鏈棧判空 入棧 push 出棧 pop 棧的應用舉例 化為字尾表示式 字尾表示式求值 在之前的學習中,我們經常聽說棧,比如 在對比for迴圈與遞迴時,遞迴可能會導致棧溢位。今天就讓我們對棧進行更加深入的 棧是限定...

鏈棧的資料結構以及鏈棧的實現

線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。鏈棧的結構 如下所示 定義資料結點...