順序棧
鏈棧ps:如果用想要嘗試下使用棧來解決問題,可以看看這一篇leetcode「有效的括號」問題
1.順序棧
#include
using namespace std;
#define maxsize 10
//定義順序棧
typedef struct stack;
//初始化棧
void
initstack
(stack& st)
//判斷棧是否為空
intisempty
(stack st)
else
}//進棧**
intpush
(stack &st,
int x)
else
}//出棧**
intpop
(stack &st,
int&x)
else
}//迴圈遍歷棧,顯示元素資訊
void
show
(stack st)
cout << endl;
}int
main()
2.鏈棧
#include
using namespace std;
#define maxsize 10
//定義順序棧
typedef struct lnode lnode;
//初始化棧
void
initstack
(lnode *
&list)
//判斷棧是否為空
intisempty
(lnode* list)
else
}//進棧**
void
push
(lnode*
& list,
int x)
//出棧**
intpop
(lnode* list,
int& x)
p = list-
>next;
x = p-
>data;
list-
>next = p-
>next;
free
(p);
return1;
}//迴圈遍歷棧,顯示元素資訊
void
show
(lnode* list)
cout << endl;
}int
main()
順序棧和鏈棧
順序棧的儲存結構 define maxsize 100 typedef struct sqstack 順序棧的初始化操縱就是為順序棧動態分配乙個預訂大小的陣列空間 選乙個大小合適的桶 void initstack sqstack s 入棧操作就是指在棧頂插入乙個新的元素,新的元素為棧頂元素 給桶裡放...
棧,順序棧,鏈棧
棧作為一種限定性線性表,是將表的插入刪除限制為僅在表的一端進行,通常將表中允許插入刪除的一端叫做棧頂 top 因此棧頂的當前位置是動態變化的。棧的另一端叫做棧底 bottom 當棧中沒有元素時稱為空棧。插入操作稱為進棧或入棧,刪除操作稱為出棧或退棧。棧是先進後出的線性表,簡稱為lifo表。棧主要有兩...
棧 順序棧 鏈棧
棧 順序棧 鏈棧 分別用順序表和煉表實現棧,完成入棧 出棧 窺探棧頂元素等操作 commom.h ifndef common h define commom h include include include include include define elemtype int void swap...