按不同的儲存結構,可以將棧分為順序棧和鏈棧。
順序棧的實現:
typedef int datatype;
const int maxnum=1000;
struct sqstack
//判斷棧空
bool isempty()
else return false;
}//判斷棧滿
bool isfull()
else return false;
}//進棧
bool pushstack(datatype newone)
else
}//出棧
bool popstack()
else
}//得到棧頂元素
datatype gettop()}};
共享棧:
//判斷棧type是否為空
bool isempty(int type)
else return false;;
}//判斷棧滿
bool isfull()
else return false;
}//棧type入棧
bool pushstack(int type,datatype newone)
else
if(type==1)
return true;}}
//棧type出棧
bool popstack(int type)
else
if(type==1)
return true;}}
//得到棧type的棧頂
datatype gettop(int type)}};
鏈棧:
帶頭結點的鏈棧
typedef int datatype;
struct nodes ;
//帶頭結點的鏈棧
struct linkstack
//判空
bool isempty()
else return false;
}//進棧
void pushstack(datatype newone)
//出棧
bool popstack()
else
}//得到棧頂元素
datatype gettop()}};
不帶頭結點的鏈棧
typedef int datatype;
struct nodes ;
//不帶頭結點的鏈棧
struct linkstackii
//判斷棧空
bool isempty()
else return false;
}//進棧
void pushstack(datatype newone)
//出棧
bool popstack()
else
}//得到棧頂元素
datatype gettop()}};
鏈棧和順序棧的實現
順序棧 ifndef astack h define astack h include stack.h template class elem class astack public stack elem astack void clear bool push const elem item boo...
C 鏈式棧和順序棧
分類 1.順序棧 2.鏈式棧 常用操作 push 和 pop 常見應用 1.括號匹配問題 2.逆波蘭表示式 說明 個人c 練習 鏈式棧 優點 棧的大小靈活 缺點 不能像陣列一樣靈活遍歷 include using namespace std 鏈式棧 struct data struct stackn...
棧,順序棧,鏈棧
棧作為一種限定性線性表,是將表的插入刪除限制為僅在表的一端進行,通常將表中允許插入刪除的一端叫做棧頂 top 因此棧頂的當前位置是動態變化的。棧的另一端叫做棧底 bottom 當棧中沒有元素時稱為空棧。插入操作稱為進棧或入棧,刪除操作稱為出棧或退棧。棧是先進後出的線性表,簡稱為lifo表。棧主要有兩...