方法很簡單:你講兩個饑豎棧都傳進(jìn)去,類似于 : int pus(SeqStack1 *s, DataType* x1, SeqStack2 *s, DataType* x2)(SeqStack1是你的第一個棧,SeqStack2是第二個棧,DataType是你需要傳進(jìn)去的數(shù)據(jù)衡肢銷的類型),然后在這個函數(shù)里面先判斷x1 ,x2是否為空,如果為空,則他對應(yīng)的那個棧不需要壓棧,如果不為空,則執(zhí)咐游行相應(yīng)的壓棧操作。

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)荔灣,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
不明白繼續(xù)追問!
/*
這是關(guān)于棧的操作
那么應(yīng)該定義一個棧類型
棧中包含兩個元素
棧頂指針
棧底指針
以下是修改后的,行核豎供參考
*/
# include stdio.h
# include stdlib.h
# include string.h
struct link
{
char name[40];
int age;
struct link * next;
};
typedef struct link Node;
typedef Node * List;
typedef struct Stack
{
List pTop;
List pBottom;
}STACK,* PSTACK;
void init(PSTACK pS)//初始化棧
{
pS-pTop = (Node *)malloc(sizeof(Node));
if (NULL == pS-pTop)
{
printf("動態(tài)內(nèi)存分配失敗!\n");
exit(-1);
}
else
{
pS-pBottom = pS-pTop ;
pS-pTop-next = NULL;
}
return;
}
/*入棧*/
void push(PSTACK pS,char * name,int age)
{
List p;
p=(Node*)malloc(sizeof(Node));/*申請新節(jié)點(diǎn)*/
if(p==NULL)
{
printf("error\n");
exit(1);
}
strcpy(p-name,name);/*將數(shù)據(jù)傳入新節(jié)點(diǎn)*/
p-age=age;
p-next=pS-pTop;
pS-pTop=p;
return ;
}
//遍歷棧,只檔大是訪問棧中元素的值,
//遍歷完成后,棧中的元素個數(shù)是不會改變的
void traverse(PSTACK pS)
{
List p = pS-pTop;
while (p != pS-pBottom)
{
printf("%s%5d\n",p-name,p-age);
p = p-next ;
}
printf("\n");
return;
}
bool empty(PSTACK pS)
{
if (pS-pTop == pS-pBottom)
{
return true;
}
else
return false;
}
//出棧,將棧頂元素彈出,
//彈出后,棧中元素個數(shù)減少
//注意與 遍歷棧 的區(qū)別
bool pop(PSTACK pS)
{
if (empty(pS))
{
return false;
}
else
{
List r = pS-pTop;
char * name = r-name;
printf("本次出棧元素的\nname=%s",name);
int age = r-age;
printf("\nage=%d",age);
pS-pTop = r-next;
free(r);
r = NULL;
return true;
}
}
void main()
{
STACK s;
printf("棧初始化操作\n");
init(s);
printf("開始壓棧操作\n");
int len;
printf("請輸入需要壓入棧中的元素的個數(shù):");
scanf("%d",len);
int i;
for (i=0; ilen; ++i)
{
printf("第%d個\n",(i+1));
printf("name:\t");
char name[40];
scanf("%s",name);
printf("age:\t");
int age;
scanf("%d",age);
push(s,name,age);
}
printf("遍歷棧......\n");
traverse(s);
printf("彈出棧頂元素\n");
pop(s);
printf("\n彈出后重新遍歷棧\n");
traverse(s);
}
/*
----
棧初始化操作
開始壓棧操作
請輸入需要壓入棧中的元素的個數(shù):3
第1個
name: 許褚
age: 55
第2個
name: 徐晃
age: 66
第3個
name: 張氏咐遼
age: 22
遍歷棧......
張遼 22
徐晃 66
許褚 55
彈出棧頂元素
本次出棧元素的
name=張遼
age=22
彈出后重新遍歷棧
徐晃 66
許褚 55
-----
*/
文章標(biāo)題:c語言中棧函數(shù)語法 c語言棧函數(shù)可以直接用嗎
文章起源:http://chinadenli.net/article13/dsjjhds.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、、搜索引擎優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)