1.概念
棧是一種線性的資料結構,採用先進後出的方式管理資料,一端的位置固定(棧底),另外一端隨著資料的進出隨時改變(棧頂)
2.實現思路
棧是一種邏輯概念,可以使用順序結構來實現(順序棧),也可以使用鏈式結構來實現(鏈式棧)
鏈式棧可以使用單鏈表來實現,以頭結點作為棧頂,從頭部插入作為入棧,從頭部刪除作為出棧
3.設計結構體
typedef
int t;
typedef
struct
sqstack_t,
*stacklist_t;
stacklist_t create_emptystack()
//初始化棧頂
stack->top =0;
}return stack;
}
//判空 0---非空 1---空
intis_empty
(stacklist_t stack)
//判滿 0---不滿 1---滿
intis_full
(stacklist_t stack)
void
stack_push
(stacklist_t stack,t dt)
//入棧
stack->pdata[stack->top++
]= dt;
}
t stack_pop
(stacklist_t stack)
//出棧
return stack->pdata[
--stack->top]
;}
t stack_top
(stacklist_t stack)
void
make_empty
(stacklist_t stack)
void
destroy_stack
(stacklist_t *pstack)
C語言實現棧
下面程式分別實現了棧的順序儲存結構和棧的鏈式儲存結構的壓棧和彈棧操作,均在dev c 下執行通過。棧的順序儲存結構 include include include include include define ok 1 define error 0 define maxsize 10 typedef...
C語言實現棧
一 實現 vim stack c.c include stdio.h include stdlib.h 棧元素結構體 用來描述每個棧元素 struct list 棧結構體 棧頂元素指標,棧大小資訊 struct stack 棧初始化 struct stack stackinit void 入棧函式 ...
c語言實現棧
棧是實現管理記憶體的一種方式,其特點是先進後出,一般用於儲存程式的臨時變數,全域性變數等資料。include include include 定義棧,入棧,出棧,遍歷棧 typedef struct stack 定義乙個棧 stack stackcreate 插入資料 void stack inse...