首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

算法导论第十章题解-栈的实现

2012-08-15 
算法导论第十章例题-栈的实现StackNode.h#includeiostreamusing namespace stdclass Stackclass Stack

算法导论第十章例题-栈的实现

StackNode.h

#include<iostream>using namespace std;class Stack;class StackNode{private:friend Stack;int key;StackNode *Next;public:StackNode(int num):key(num),Next(NULL){}int Getkey(){return key;}StackNode *GetNext(){return this->Next;}};


 

stack.h

#include<iostream>#include"StackNode.h"using namespace std;#define MaxLength 100class Stack{private:int length;StackNode *top;public:Stack():length(0){top=NULL;}Stack(int num):length(1){top=new StackNode(num);}~Stack(){while(top!=NULL){top=top->GetNext();delete top;}}bool IsEmpty(){if(length==0){return 1;}return 0;}int Pop(){if(IsEmpty()){cout<<"the stack is empty!"<<endl;return -1;}int temp=top->Getkey();top=top->GetNext();length--;return temp;}bool Push(int num){if(length==MaxLength){cout<<"the stack is full!"<<endl;return 0;}StackNode* p=new StackNode(num);p->Next=top;length++;top=p;}int GetLength(){return length;}bool IsFull(){if(length==MaxLength){return 1;}return 0;}};


 

mai.cpp

#include"stack.h"int main(){Stack node;int i,a[10]={1,23,4,5,6,7,8,941,12,45};for(i=0;i<10;i++){node.Push(a[i]);}for(i=0;i<10;i++){cout<<node.Pop()<<" ";}return 0;}


 

热点排行