棧 實現鏈棧和順序棧)

2021-10-09 00:04:27 字數 1741 閱讀 7031

按不同的儲存結構,可以將棧分為順序棧和鏈棧。

順序棧的實現:

typedef int datatype;

const int maxnum=1000;

struct sqstack

//判斷棧空

bool isempty()

else return false;

}//判斷棧滿

bool isfull()

else return false;

}//進棧

bool pushstack(datatype newone)

else

}//出棧

bool popstack()

else

}//得到棧頂元素

datatype gettop()}};

共享棧:

//判斷棧type是否為空

bool isempty(int type)

else return false;;

}//判斷棧滿

bool isfull()

else return false;

}//棧type入棧

bool pushstack(int type,datatype newone)

else

if(type==1)

return true;}}

//棧type出棧

bool popstack(int type)

else

if(type==1)

return true;}}

//得到棧type的棧頂

datatype gettop(int type)}};

鏈棧:

帶頭結點的鏈棧 

typedef int datatype;

struct nodes ;

//帶頭結點的鏈棧

struct linkstack

//判空

bool isempty()

else return false;

}//進棧

void pushstack(datatype newone)

//出棧

bool popstack()

else

}//得到棧頂元素

datatype gettop()}};

不帶頭結點的鏈棧 

typedef int datatype;

struct nodes ;

//不帶頭結點的鏈棧

struct linkstackii

//判斷棧空

bool isempty()

else return false;

}//進棧

void pushstack(datatype newone)

//出棧

bool popstack()

else

}//得到棧頂元素

datatype gettop()}};

鏈棧和順序棧的實現

順序棧 ifndef astack h define astack h include stack.h template class elem class astack public stack elem astack void clear bool push const elem item boo...

C 鏈式棧和順序棧

分類 1.順序棧 2.鏈式棧 常用操作 push 和 pop 常見應用 1.括號匹配問題 2.逆波蘭表示式 說明 個人c 練習 鏈式棧 優點 棧的大小靈活 缺點 不能像陣列一樣靈活遍歷 include using namespace std 鏈式棧 struct data struct stackn...

棧,順序棧,鏈棧

棧作為一種限定性線性表,是將表的插入刪除限制為僅在表的一端進行,通常將表中允許插入刪除的一端叫做棧頂 top 因此棧頂的當前位置是動態變化的。棧的另一端叫做棧底 bottom 當棧中沒有元素時稱為空棧。插入操作稱為進棧或入棧,刪除操作稱為出棧或退棧。棧是先進後出的線性表,簡稱為lifo表。棧主要有兩...