数据结构~~~线性表复习(栈的应用)
生活随笔
收集整理的這篇文章主要介紹了
数据结构~~~线性表复习(栈的应用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// 線性表(棧的應用).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
總結
以上是生活随笔為你收集整理的数据结构~~~线性表复习(栈的应用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python函数名的运用,闭包,迭代器
- 下一篇: get与post请求问题