/*棧的基本實現*/
#include"stdafx.h"
#include
#include
#define maxsize 64
using namespace std;
/*基於陣列實現的棧*/
class stack ;//預設建構函式
int push(int data);//元素入棧
int pop();//元素出棧
bool isempty();//是否為空棧
void print_all();//遍歷輸出
void clear();//將棧置空
};/*具體實現*/
bool stack::isempty()
return false;
}int stack::push(int a)
else
return 0;
}int stack::pop()
else
}void stack::print_all()
}void stack::clear()
/*基於鍊錶實現的棧*/
typedef struct link
}link,*linknode;
class link_stack;
link_stack::link_stack()
int link_stack::push(int data)
int link_stack::pop()
//刪除當前元素
head->next = p->next;//將head的指向指向p的下乙個元素;
delete p;
top--;
if (top < 0)
return 0;
}int link_stack::clear()
else
}return 0;
}int link_stack::isempty()
return 0;//非空棧
}void link_stack::print_all()
int t = top;
while (t!=-1)
}int main()
s.print_all();
s.pop();
s.print_all();
s.clear();
cout << "**************************************" << endl;
cout << "基於鍊錶實現的棧" l.push(1); l.push(2); l.push(3); l.print_all(); cout << endl; l.pop(); l.print_all(); l.clear(); } 順序表實現棧 include include 順序表實現棧 define test head printf n s n function define default sz 5 typedef char datatype typedef struct seqstack seqstack 棧的初始化 ... 棧 stack 是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧的頂 top 它是後進先出 lifo 的。對棧的基本操作只有push 進棧 和pop 出棧 兩種,前者相當於插入,後者相當於刪除最後的元素。棧本質上是一種受限制的表,所以可以使用任何一種表的形式來實現它,最常用的是使用... 一 陣列實現棧 首先需要定義乙個陣列來儲存棧中的資料,並定義乙個變數來記錄陣列中儲存元素的個數,編寫乙個構造方法來構造乙個長度為十得陣列。先頂i有乙個陣列來儲存棧中的元素 private object array 定義陣列中儲存元素的個數 private int size 構造後乙個長度與為10的陣...棧的兩種實現
棧的兩種C 實現
棧的兩種實現方式