我自己寫的**部分:
1 #include2 #include3 #include4 typedef struct
node
5lstack,*lpstack;910
void initstack(lstack **top)
1116
17int push(lstack *top,char
e)18
26 p->next=top->next;
27 p->data=e;
28 top->next=p;29}
30/*
31//取出棧頂的元素,並將該棧頂元素彈出去
32char pop(lstack *top,char e)
3340
e=p->data;
41top->next=p->next;
42free(p);
43return e;44}
45//主函式中遍歷棧中元素則可更改為
46while(s->next)
49*/
50int pop(lstack *top,char *e)
5158 e=p->data;
59 top->next=p->next;
60free
(p);
61return1;
62}6364
int getlength(lstack *top)
6572
return
cnt;73}
74char gettop(lstack *top,char
e)75
82 e=p->data;
83return
e;84}85
void clear(lstack *top)
8694}95
intmain()
96107 printf("
len = %d\n
",getlength(s));
108 printf("
彈出棧頂元素! \n");
109 pop(s,&e);
110 printf("
len = %d\n
",getlength(s));
111112 printf("
取得棧頂元素:%c\n
",gettop(s,e));
113114 printf("
clear stack!\n");
115clear(s);
116 printf("
len = %d\n
",getlength(s));
117118
while(s->next)
122 printf("
len = %d\n
",getlength(s));
123return0;
124 }
#include#include#include
#include
#define maxsize 100typedef
struct
node
lnode ,*linkstack;
void init(linkstack *top)
/*int empty(linkstack top)
*/char
get(linkstack top,char
e)
else
returne;}
int push(linkstack top,char
e) p->data=e;
p->next=top->next;
top->next=p;
return1;
}int pop(linkstack top,char *e)
top->next=p->next;
*e=p->data;
free
(p);
return1;
}int
length(linkstack top)
returni;}
void
clear(linkstack top)}//
形參有*代表是乙個指標,那麼傳遞實參的時候可以傳遞指標變數,此時直接用指標變數名;
//或者傳遞普通變數的位址,此時用取位址符&+變數名。
intmain()
printf(
"棧頂元素:%c\n
",get
(s,e));
printf(
"將f入棧\n");
push(s,'f
');printf(
"將g入棧\n");
push(s,'g
');printf(
"棧中元素個數為:%d\n
",length(s));
printf(
"將棧頂出棧:\n");
pop(s,&e);
printf(
"將棧頂出棧:\n");
pop(s,&e);
printf(
"將棧頂出棧:\n");
pop(s,&e);
printf(
"棧中元素個數為:%d\n
",length(s));
printf(
"出棧元素的序列:");
while(s->next)
printf("\n
");return0;
}
C語言實現鏈棧
鏈棧顧名思義,採用鍊錶實現,其優點是不存在棧滿上溢位的情況,其操作都是在頭結點之後進行的,入棧類似與頭插法建立鍊錶。注意頭結點與棧頂節點的區別,在沒有元素入棧時,棧僅有初始化的乙個頭結點,判斷其是否為空只需判斷s next是否為null。下面用c語言 實現了鏈棧的基本操作 執行環境 vs2017 執...
C語言實現鏈棧
不多說,直接上 include include define max 100 define ok 1 define error 1 define stack size 100 typedef int elemtype 資料庫 elemtype data 5 elemtype number 鏈棧的節點...
c語言實現鏈棧
c語言 棧的鏈式表示與實現 採用順序儲存的棧也具有順序表類似的缺點 採用順序儲存的棧,即順序棧的儲存空間無法事先確定,如果棧空間分配過小,可能會造成溢位 如果棧空間分配過大,又容易造成儲存空間浪費,因此可以採用鏈式儲存結構表示棧 include includetypedef int elemtype...