日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构~~~线性表复习(栈的应用)

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构~~~线性表复习(栈的应用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// 線性表(棧的應用).cpp: 定義控制臺應用程序的入口點。 // #include "stdafx.h" #include"iostream" #include"string" using namespace std; template <class T> class Stack { private:int top;T * S;int size; public:Stack();Stack(int x);void push(T x);bool isempty();bool isfull();T gettop();T pop();void clear();};template<class T> Stack<T>::Stack() {S = new T[100];top = -1;size = 100; } template<class T> Stack<T>::Stack(int x) {S = new T[x];top = -1;size = x; } template<class T> bool Stack<T>::isempty() {if (top == -1){return true;}elsereturn false; } template<class T> bool Stack<T>::isfull() {if (top == size - 1){return true;}else return false; } template<class T> void Stack<T>::push(T x) {if (!isfull()){top++;S[top] = x;} } template<class T> T Stack<T>::pop() {if (!isempty()){return S[top--];} } template<class T> T Stack<T>::gettop() {return S[top]; } template<class T> void Stack<T>::clear() {top = -1; } //棧的應用··1數制轉換 /*template<class T>//T只能是數的類型 void conversion(T x, T flag) {Stack<T> s;while (x){s.push(x%flag);x = x / flag;}while (!s.isempty()){cout << s.pop();}cout << endl; } int main()//用于測試數制轉換的主程序 {int x, flag;cin >> x >> flag;conversion<int>(x, flag);return 0; }*///棧的應用··2括號匹配的檢驗 /*bool bracket( char * s ) {int length = strlen(s);int FLAG;Stack<char> ch;char flag[4] = { '(','[',')',']' };for (int i = 0; i < length; i++){FLAG = 0;for (int j = 0; j < 2; j++){if (s[i] == flag[j]){ch.push(s[i]);FLAG = 1;break;}}if (FLAG==0){switch (s[i]){case ']':if (ch.pop() != flag[1]) return false; break;case')': if (ch.pop() != flag[0]) return false; break;}}}return true;}int main() {char s[20];cin >> s;if (bracket(s)){cout << "括號檢測完成,括號“無誤”" << endl;}else{cout << "括號檢測完成,括號“有誤”" << endl;}return 0; }*///棧的應用··3行編輯程序 /*說明: 1:當用戶發現剛剛鍵入的一個字符是錯誤的時,可以鍵入補進一個“#”,以表示前一個字符無效 2:如果發現錯誤太多且無法補救,則可以鍵入一個“@”,以表示在“@”之前的本行字符都無效 */ /*void edlin(char *ch) { int i = 0;Stack <char> s;while (ch[i]){switch (ch[i]){case '#':s.pop(); break;case'@':s.clear(); break;default:s.push(ch[i]);break;}i++;}char CH[100];int j = 0;while (!s.isempty()){CH[j]= s.pop();j++;}j = j - 1;i = 0;while (j >= 0)//將字符串反轉一下{ch[i] = CH[j];j--;i++;}ch[i] = '\0';//便于輸出最后的結果 } int main() {char ch[100];cin >> ch;edlin(ch);cout << ch<< endl;return 0; }*///棧的應用···4迷宮求解

?

轉載于:https://www.cnblogs.com/Disyushen666/p/9457727.html

總結

以上是生活随笔為你收集整理的数据结构~~~线性表复习(栈的应用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。