鏈棧的實現

2021-07-24 09:57:28 字數 1548 閱讀 4533

解釋:

由於鍊錶有頭指標,而棧也必須有頭指標,所有合二為一

鏈棧為空的條件為頭指標為空,頭指標儲存在乙個新的結構體中。

/* 儲存空間初始分配量 */

typedef int selemtype;

typedef int status;

typedef struct stacknode

stacknode,*linkstackptr;

typedef struct

linkstack; //如果只需要 stu1、stu2 兩個變數,後面不需要再使用結構體

//名定義其他變數,那麼在定義時也可以不給出結構體名

status init_list(linkstack *

link)else

}status push(linkstack *s,selemtype e)

status isempty(linkstack link)

status pop(linkstack *s,selemtype *e)

int listlength(linkstack s)

status get_top(linkstack s, selemtype *e)

status clearstack(linkstack *s)

s->count =

0; s->top =

null;

}int main()

int result;

p = s.top;

while(p)

push(&s,3);

push(&s,2);

push(&s,1);

push(&s,3);

push(&s,2);

push(&s,1);

printf("鍊錶的長度為%d\n",listlength(s));

int value;

printf("取回棧頂的值%d\n",get_top(s,&value));

clearstack(&s);

printf("清空棧後,棧空否:%d(1:空 0:否)\n",isempty(s));

return

0;}

鏈棧的實現

typedef int elemtype typedef struct stacknodestacknode,linkstack 鏈棧的實現是先定義乙個結點指標,使其為null。這個作為判斷是否空棧的標誌。鏈棧的空棧借助乙個空指標,只要棧頂指標指向這個空指標就說明是空棧。鏈棧的實現是申請一塊空間,將...

棧和鏈棧的實現

1 棧的實現 建立乙個簡單的棧 include include typedef struct stack stack void initialize stack void add stack int delete s stack void initialize stack stack void ad...

棧的實現 順序棧和鏈棧

本文主要給出我對棧的實現,包括順序棧和鏈棧兩種實現方式。common.h ifndef common h define common h 函式結果狀態碼 define true 1 define false 0 define ok 1 define error 0 define infeasible...