棧的實現一般可以使用陣列或者鍊錶實現,相對而言陣列的結構實現更優一些。因為陣列在尾上插入資料的代價比較小。定長的靜態棧結構,一般不實用,所以下面給出的是支援動態增長的棧:
具體實現**如下:
#pragma once
#include #include #include #include typedef int stdatatype;
typedef struct stack
stack;
void stackinit(stack* ps, int n);
void stackdestroy(stack* ps);
void stackpush(stack* ps, stdatatype x);//在棧頂入資料
void stackpop(stack* ps);//在棧頂出資料
stdatatype stacktop(stack* ps);//取出棧頂的資料
int stacksize(stack* ps);//返回資料個數
int stackempty(stack* ps);//如果是空 返回0;非空返回1
void stacktest();
#include "stack.h"
void stackinit(stack* ps, int n)
void stackdestroy(stack* ps)
void stackpush(stack* ps, stdatatype x)//在棧頂入資料
ps->_a[ps->_top] = x;
ps->_top++;
}void stackpop(stack* ps)//在棧頂出資料
}stdatatype stacktop(stack* ps)//取出棧頂的資料
int stacksize(stack* ps)//返回資料個數
int stackempty(stack* ps)
else
//return ps->_top == 0 ? 0 : 1;
}
#include "stack.h"
void stacktest()
}int main()
資料結構 棧的實現(C語言)
棧的實現 棧的結構可以是基於陣列的。它擁有兩個基本操作 出棧和入棧。而實現操作需要乙個 top 表示頂點。很簡單 上 include define maxsize 20 typedef int elemtype typedef int status typedef struct sqstack st...
資料結構 C語言棧的實現
首先,我們要先回顧乙個知識,對於後面棧的學習會好理解點,如果我們在main 函式中定義了乙個變數 int a 需要在乙個自定義的函式中改變其值,要怎麼操作?include stdio.h include stdlib.h intmain intadd int a 我會首先想到這種方法,將改變後的值r...
C語言資料結構 棧實現迷宮
include define max 30 typedef struct box typedef struct stack int map 10 10 int search int beginx,int beginy,int endx,int endy else return 1 find 0 wh...