解釋:
由於鍊錶有頭指標,而棧也必須有頭指標,所有合二為一
鏈棧為空的條件為頭指標為空,頭指標儲存在乙個新的結構體中。
/* 儲存空間初始分配量 */
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...