数据结构栈的实现

时间:2015-01-13 11:34:05
【文件属性】:

文件名称:数据结构栈的实现

文件大小:90KB

文件格式:DOC

更新时间:2015-01-13 11:34:05

数据结构栈的实现

实验目的 1.掌握栈、思想及其存储实现。 2.掌握栈、常见算法的程序实现。 实验原理 1. 根据实验内容编程,上机调试、得出正确的运行程序。 实验仪器 计算机及C++编译软件 实验步骤 1. 编译运行程序,观察运行情况和输出结果。 2. 写出实验报告(包括源程序和运行结果)。 实验内容 \1.采用链式存储实现栈的初始化、入栈、出栈操作 CODE: #include template class link { public: T date; link *next; link(const T info, link *nextvalue=NULL) { date=info; next=nextvalue; } link(link *nextvalue) { next=nextvalue; } }; template class inkstack { private: link *top; int size; public: inkstack(); ~inkstack(); void clear(); bool push(const T item); bool pop(T & item); bool toop(T & item); }; template inkstack::inkstack() { top=NULL; size=0; } template inkstack::~inkstack() { clear(); } template void inkstack::clear() { while(top!=NULL) { link *tmp=top; top=top->next; delete top; } size=0; } template bool inkstack::push(const T item) { link *tmp=new link(item,top); top=tmp; size++; return true; } template bool inkstack::pop(T & item) { link *tmp; if(size==0) { cout<<"栈为空,不能执行出栈操作"<date; tmp=top->next; delete top; top=tmp; size--; return true; } template bool inkstack::toop(T & item) { if(size==0) { cout<<"栈为空,不能执行出栈操作"<date; return true; } void main() { inkstack b; int i,a[10],c,d; for(i=0;i<5;i++) { cin>>a[i]; b.push(a[i]); } for(i=0;i<5;i++) { b.pop(c); cout< using namespace std; class sqstack { private: int top; int maxsize; int *elem; public: sqstack(int size) {maxsize=size; elem=new int[maxsize]; top=0; } ~sqstack(){delete []elem;} int length(); bool empty(){return top==0;} void push(int e); void pop(int &e); void display(); }; int sqstack::length() { return top; } void sqstack::push(int e) { elem[top++]=e; } void sqstack::pop(int &e) { if (!empty()) {e=elem[--top]; ; } } void sqstack::display() { for(int i=top-1;i>=0;i-- ) { cout<>x; for(i=1;i<=x;i++) {cout<<"请输入要入栈的"<>e; a.push (e); } cout<<"显示队栈中的元素为:"<>x; cout<<"出栈元素为:"; for(i=1;i<=x;i++) {a.pop (e); cout<


网友评论