//棧的實現
//供學習c++人員使用
#define stack_size 10000 //巨集定義
#include//標頭檔案
using namespace std;
template
struct node
//無引數的的建構函式
node(elemtypeitem,node*link=null)//已知資料元素值和指標建立結點
};
template
class stack
//建構函式
virtual~stack(){} //析構函式
virtualbool push(const elemtype &e)=0; //入棧
virtualbool pop(elemtype &e)=0; //出棧
virtualbool gettop(elemtype &e)const=0;//取棧頂元素
}; //順序棧類模板
template
class sqstack:public stack
//建構函式
~sqstack(){} //析構函式
boolpush(const elemtype &e) //入棧
} boolpop(elemtype &e) //出棧
} boolgettop(elemtype &e)const //取棧頂元素
} };
template
class linkstack:public stack
//建構函式
~linkstack() //析構函式
boolpush(const elemtype &e) //入棧
boolpop(elemtype &e) //出棧
} boolgettop(elemtype &e)const //取棧頂元素
} };
int main()
while(select!=1&&select!=2);
if(select==1)
pstack=newsqstack;
elsepstack=new linkstack;
while(select!=5)
break;
case2: //入棧
cout<<"輸入元素值:";
cin>>e; //輸入e
pstack->push(e); //入棧
break;
case 3: //出棧
pstack->pop(e); //出棧操作
cout<<"棧頂元素值為"《輸出棧頂元素
break;
case4: //取棧頂
pstack->gettop(e); //取棧頂操作
cout<<"棧頂元素值為"《取出棧頂元素
break; }
} deletepstack; //釋放訪問空間
system("pause");
return 0;
}
C 棧的實現
2009 04 15 11 40 順序棧 seqential stack 就是用順序儲存方式儲存的棧。在下面順序棧的類定義中是用陣列儲存的。用stacka maxsize 儲存,maxsize是最大允許存放元素的個數。變數top表示棧頂部元素的位置,初始值為 1,表示棧空.我們首先給出順序棧的抽象資...
棧的C 實現
棧的特點是先進後出 lifo 就像一疊盤子一樣,你只能從最上面取。這裡介紹幾個基本的功能 是否為空棧 empty 新增乙個元素 push 取最頂元素 top 彈出乙個元素 pop 輸出棧中的元素 out c 中有棧容器,用到時只需 include即可。這裡,我們自己建立乙個棧類,乙個int型的棧,再...
棧的C 實現
眾所周知,棧是一種最常用的資料結構,棧在實現上可以用陣列和結構體來實現,下面用結構體來實現棧。考慮到資料型別的通用性,這裡使用模板進行編寫,便於以後的學習過程中進行使用,不了解模板的同學,可以去網上了解一下c 的模板的使用。這裡有一篇關於c 模板類的部落格,可以先了解一下 c 模板詳解 好了,下面開...