資料結構之一

2021-09-25 10:00:21 字數 1470 閱讀 5798

堆疊(strack)是指這樣一段記憶體,我們它可以理解為乙個筒結構,先放進筒中的資料被後放進筒中的資料「壓住」,只有後放進筒中的資料都取出後,先放進去的資料才能被取出,稱為「後進先出」。堆疊的長度可隨意增加。堆疊結構可用鍊錶實現。設計乙個鍊錶結構需包含兩個成員:乙個存放資料,乙個為指向下乙個節點的指標。當每次有乙個新資料要放入堆疊時,稱為「壓入堆疊」,這時動態建立乙個鍊錶的節點,並連線到鍊錶的結尾;當每次從堆疊中取出乙個資料時,稱為「彈出堆疊」,這意味著從鍊錶的最後乙個節點中取出該節點的資料成員,同時刪除該節點,釋放該節點所佔的記憶體。以下的程式結果直觀地反應了這一特性。

#include

#include

typedef

struct stack

stack;

stack *head,

*pr;

int nodenum =0;

//堆疊節點數暫存器

stack *

createnode

(int num)

;stack *

pushstack

(int num)

;int

popstack

(void);

intmain()

, newnum[5]

, i;

for(i =

0; i <

5; i++

)for

(i =

0; i <

5; i++

)return0;

}stack *

createnode

(int num)

//函式功能:生成乙個新的節點,並為該節點賦初值,返回指向新的節點的指標

p->next =

null

;//為新建的節點指標域賦空指標

p->data = num;

//為新建的節點資料區賦值

return p;

}stack *

pushstack

(int num)

//函式功能:將整型變數num的值壓入堆疊,返回指向鍊錶新節點的指標

else

//如果不是首節點,那麼就將新建節點連到鍊錶的結尾處

return pr;

}int

popstack

(void

)//函式功能:將當前棧頂的資料彈出堆疊,返回從堆疊中彈出的資料

else

} pr->next =

null

;//將末節點的前乙個節點置成末節點

result = p->data;

free

(p);

return result;

}

code::block執行結果:

資料結構與演算法之一

電腦科學是通過使用計算機解決各種問題的研究領域。為了使用計算機解決給出的問題,您需要為其設計演算法。可設計多個演算法來解決特定的問題。提供了最大效率的演算法應用於解決此問題。演算法的效率可通過使用合適的資料結構來改善。資料結構幫助建立簡單 可重用和易於維護的程式。本模組允許學員選擇並實現合適的資料結...

C 儲存資料結構之一List

分類 vc list是雙向迴圈鍊錶,每乙個元素都知道前面乙個元素和後面乙個元素。在stl中,list和vector一樣,是兩個常被使用的容器。和vector不一樣的是,list不支援對元素的任意訪問。list中提供的成員函式與vector類似,不過list提供對錶首元素的操作push front p...

redis 學習之一(資料結構)

儲存物件的兩種方式 儲存序列化之後的物件 jedis.set user liudehua obj getbytes getbytesbyproduct person user liudehua obj getbytes fasdf 不能用這種形式 byte productbytes jedis.ge...