C資料結構 鏈棧

2021-08-09 03:04:42 字數 1777 閱讀 9088

鏈棧的設計依賴於筆者之前設計的鍊錶,詳情請看《c資料結構-線性表之單鏈表 》。

#ifndef linkedstack_h

#define linkedstack_h

#include "linkedlist.h"

typedef linked_list linked_stack;

/** * 建立鍊錶棧

* @return

*/linked_stack *linked_stack_create();

/** * 入棧

* @param pstack 棧指標

* @param p 入棧元素的指標

* @return 成功:1,失敗:0

*/int linked_stack_push(linked_stack *pstack, elem_t *p);

/** * 出棧

* @param pstack 棧指標

* @return 返回出棧元素的值

*/elem_t linked_stack_pop(linked_stack *pstack);

/** * 獲取棧頂元素的值

* @param pstack

* @return

*/elem_t linked_stack_top(linked_stack *pstack);

/** * 判斷棧是否為空

* @param pstack 棧指標

* @return 1為空,否則非空

*/int linked_stack_empty(linked_stack *pstack);

/** * 銷毀棧

* @param pstack 棧指標

* @return 成功:1,失敗:0

*/int linked_stack_destroy(linked_stack *pstack);

#endif // linkedstack_h

#include "linkedstack.h"

/** * 建立鍊錶棧

* @return

*/linked_stack *linked_stack_create()

/** * 入棧

* @param pstack 棧指標

* @param p 入棧元素的指標

* @return 成功:1,失敗:0

*/int linked_stack_push(linked_stack *pstack, elem_t *p)

/** * 出棧

* @param pstack 棧指標

* @return 返回出棧元素的值

*/elem_t linked_stack_pop(linked_stack *pstack)

/** * 獲取棧頂元素的值

* @param pstack

* @return

*/elem_t linked_stack_top(linked_stack *pstack)

/** * 判斷棧是否為空

* @param pstack 棧指標

* @return 1為空,否則非空

*/int linked_stack_empty(linked_stack *pstack)

/** * 銷毀棧

* @param pstack 棧指標

* @return 成功:1,失敗:0

*/int linked_stack_destroy(linked_stack *pstack)

C 資料結構 鏈棧

public class linkstacknode 節點指標 public linkstacknode next public linkstacknode t d 鏈棧 public class linkstack 總長度 public int count 入棧 public void push ...

資料結構 棧 鏈棧

棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...

資料結構(C實現) 鏈棧

鏈棧,即棧的鏈式儲存結構,鏈棧通常使用不帶頭結點的單鏈表來表示,因此其結點的結構和單鏈表的結點結構相同。在乙個鏈棧中,棧底就是鍊錶的最後乙個結點,而棧頂總是鍊錶的第乙個結點。因此,新入棧的元素即為鍊錶中採用頭插法新加入的結點,乙個鏈棧可以由棧頂指標唯一確定,當top為null時,則表示該棧是乙個空的...