1.定義結點結構體,含有資料和指標兩個成員變數;
2.定義棧結構體,含有棧頂指標和棧中元素個數兩個成員變數,其中棧頂指標是結點結構體指標型別;
3.棧頂指標當作頭指標指向第乙個元素,利用頭插法實現入棧;
/*
專案名稱:鏈棧的建立與基本操作
編譯環境:vc++ 2008
作者相關:。。。
最後修改:2019.6.21
學習目標:初始化、銷毀、清空、判空、求長、返回棧頂元素、插入元素、刪除元素、輸出棧中元素
注意事項:1.測試所有功能是否正常
*/#include #include #include #define ok 1
#define error 0
typedef int elemtype;
typedef bool status;
//定義結點
typedef struct snodesnode,*slnode;
//定義棧
typedef structslinkstack;
status init_lstack(slinkstack *s);
status clear_lstack(slinkstack *s);
status destroy_lstack(slinkstack *s);
status empty_lstack(slinkstack s);
int length_lstack(slinkstack s);
status gettop_lstack(slinkstack s,elemtype *e);
status push(slinkstack *s,elemtype e);//在棧頂插入元素,相當於不帶頭結點的頭插法
status pop(slinkstack *s,elemtype *e);
status visit(elemtype c);
status out_lstack(slinkstack s);
int main()
out_lstack(s);
int k=length_lstack(s);
printf("棧的長度為:%d \n\n",k);
gettop_lstack(s,&e);
printf("棧頂元素為:%d \n\n",e);
pop(&s,&e);
printf("刪除的元素為:%d \n\n",e);
out_lstack(s);
clear_lstack(&s);
destroy_lstack(&s);
return 0;
}status init_lstack(slinkstack *s)
status clear_lstack(slinkstack *s)
s->top = null;
s->count = 0;
return ok;
}status destroy_lstack(slinkstack *s)
free(s->top);//銷毀最初建立的結點
鏈棧基本操作
棧基本概念 棧 stack 是限定在表尾進行插入和刪除操作的線性表 或單鏈表 只能在一段進行插入和刪除,因此不存在,在中間進行插入 棧頂 top 允許插入和刪除的一端。而另一端稱為棧底 bottom 空棧 不含任何資料元素的棧。後進先出 兩個基本操作 棧的插入操作 push 叫做進棧,或壓棧,或入棧...
鏈棧基本操作
棧 stack 是限定在表尾進行插入和刪除操作的線性表 或單鏈表 只能在一段進行插入和刪除,因此不存在,在中間進行插入 棧頂 top 允許插入和刪除的一端。而另一端稱為棧底 bottom 空棧 不含任何資料元素的棧。後進先出 棧的插入操作 push 叫做進棧,或壓棧,或入棧 刪除操作 pop 叫做出...
鏈棧的基本操作
初始化乙個資料元素為整形的鏈棧,並實現進棧 出棧 獲得棧頂元素等操作。通過控制台將1,2,3,4,5進棧,出棧兩次,獲得棧頂元素並輸出,6進棧,列印棧內的所有內容。include include define maxsize 100 define ok 1 define error 0 using ...