第三章、栈
一、定义、
栈是限定仅在表尾进行插入或删除的线性表。
二、实现(顺序存储):
利用数组的顺序存储依次存放自栈底到栈顶的数据元素。
三、数据结构:
1 typedef struct{ 2 elemtype data[100]; //利用数组进行存取 3 int top; //栈顶 4 int base; //栈底 5 }Sqstack
四、代码实现:
#include<iostream> using namespace std; #define Max 100 typedef struct { int data[Max]; int base; int top; int length;//表示栈内元素个数 }Stack; //定义栈类型 //初始化栈 void Init_stack(Stack& s){ s.base=0; s.top=0; s.length=s.top-s.base; } //获得栈顶元素 int get_top(Stack s){ if(s.length!=0){ cout<<s.data[s.top-1]; return s.data[s.top-1]; } else return -1; } //插入元素 bool push(Stack& s,int i){ if(s.length<100){ s.data[s.top]=i; s.length=s.top-s.base; s.top+=1; return true; }else{ return false; } } //删除元素 bool pop(Stack& s){ if(s.length>0){ s.top--; s.length=s.top-s.base; }else{ return false; } } int main(){ Stack s; Init_stack(s); int i; push(s,10); push(s,20); get_top(s); }
三、应用、
1、由于栈结构的后进先出的特性。
2、可以应用在数制转换、括号匹配、