棧的兩種實現

2021-08-21 05:48:59 字數 1455 閱讀 8690

/*棧的基本實現*/

#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 棧的初始化 ...

棧的兩種C 實現

棧 stack 是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧的頂 top 它是後進先出 lifo 的。對棧的基本操作只有push 進棧 和pop 出棧 兩種,前者相當於插入,後者相當於刪除最後的元素。棧本質上是一種受限制的表,所以可以使用任何一種表的形式來實現它,最常用的是使用...

棧的兩種實現方式

一 陣列實現棧 首先需要定義乙個陣列來儲存棧中的資料,並定義乙個變數來記錄陣列中儲存元素的個數,編寫乙個構造方法來構造乙個長度為十得陣列。先頂i有乙個陣列來儲存棧中的元素 private object array 定義陣列中儲存元素的個數 private int size 構造後乙個長度與為10的陣...