當前位置:編程學習大全網 - 源碼下載 - c堆棧源代碼

c堆棧源代碼

妳好:

妳壹定在學習數據結構。

首先,當妳學習stack的時候,妳需要了解stack的定義以及它是什麽,也就是了解他的思想。

最後體現在代碼上。

棧是FIFO,但實際上是由代碼控制的。

其實妳可以讓他先進先出。

妳只需要明白他的原理。

代碼,妳可以把它理解為壹種與計算對話的語言。

別想那麽復雜。

就像說話壹樣,妳只需要知道妳想說什麽(算法),不必刻意去理解怎麽說(語法)。

給我之前寫的代碼,關於棧,順序棧,實際上是鏈棧。

/*?數據結構-棧?*/

/*?異常的詳細信息尚未處理*/

#包含?& ltiostream & gt

#包含?& ltstdlib.h & gt

#包含?& ltmalloc.h & gt

#定義?len_chu_shi?50?//初始空間大小

#定義?len _曾_賈?10//添加額外空間

#定義?好嗎?0?//正確

#定義?結束了?-2?//

#定義?錯誤?-1?//

使用?命名空間?std

typedef?int?elem _ type//元素類型

typedef?int?function _ type//函數類型

typedef?struct?詹(漢)

{

elem_type?* top//棧頂

elem_type?*基數;?//堆棧底部

int?len?//當前空間大小

}詹;//堆棧結構

函數_類型?Init_zhan(zhan?*考試);//初始化堆棧

函數_類型?Get_top(詹?*考試,elem_type?* e);//獲取堆棧的頂部元素

函數_類型?Add_top(詹?*考試,elem_type?* e);//添加棧頂元素

函數_類型?Delete_top(詹?*考試,?elem_type?* e);//刪除堆棧的頂部元素

int?main(int?argc,char?*argv[])

{

詹?*舉例?=?(詹?*)malloc(sizeof(Zhan));

Init_zhan(示例);

回歸?OK;

}

函數_類型?Init_zhan(zhan?*考試)

{

考試-& gt;基地?=?(elem_type?*)malloc(len _ Chu _ Shi * sizeof(elem _ type));

如果(!考試-& gt;Base)//分配失敗。

退出(結束);

考試-& gt;top?=?考試-& gt;基地;

考試-& gt;萊恩。=?len _ chu _ shi

回歸?OK;

}// - end

函數_類型?Get_top(詹?*考試,elem_type?*e)

{

如果(!考試-& gt;基地)

退出(結束);

*e?=?*(考試->;top?-?1);//不能使用自減運算符,這樣會改變棧頂指針的值。

回歸?OK;

}// - end

函數_類型?Add_top(詹?*考試,elem_type?*e)

{

如果(考試-& gt;萊恩。& lt=?考試-& gt;top?-?考試-& gt;Base)//個人認為,如果?已經”

考試-& gt;基地?=?(elem_type?*)realloc(考試-& gt;基地,(考試->;萊恩。+?len _ Zeng _ Jia)* sizeof(elem _ type));

如果(!考試-& gt;Base)//分配失敗。

退出(結束);

*(考試->;top++)?=?* e;?//先改變棧頂指針的內容,再自行增加棧頂指針。

考試-& gt;萊恩。+=?len _ zeng _ jia

回歸?OK;

}// - end

函數_類型?Delete_top(詹?*考試,?elem_type?*e)

{

如果(!考試-& gt;Base)//空堆棧

退出(結束);

*e?=?*( -考試-& gt;頂);//先遞減棧頂指針,再獲取棧頂指針的內容。

回歸?OK;

}// - end

  • 上一篇:長龍岀發到體彩中心怎麽走
  • 下一篇:RESTful WebService和web service的區別
  • copyright 2024編程學習大全網