① c語言中,如何用多個文件編寫程序
將一個函數寫在一個文件里,然後再在另一個文件里用「include」包含這個文件。
舉例:
在文件c1.c里編一個函數:
void printWord(){
printf("Hello!world!");
}
再建立一個文件c2.c,文件開頭寫上#include"c1.c",就可以調用c1.c里的函數printword()了
這樣通過include操作,可以把任意多個文件連接起來,編譯成一個程序運行。
② 急!用c語言實現鏈棧的操作
typedef struct node
{ ElemType data;
struct node *next;
} LinkStack;
⑴置空棧
void InitLinkStack( LinkStack * & s)
{ s=NULL;
}
⑵判棧空
int IsEmptyLinkStack(LinkStack *s )
{ if(s==NULL)
return 1;
else
return 0;
}
⑶ 入棧/*將元素x插入鏈棧top的棧頂*/
void PushLinkStack(LinkStack* &s , ElemType x)
{ LinkStack *p;
p=malloc(sizeof(LinkStack)); /*生成新結點*s */
p->data=x;
p->next=s;
s=p;
}
⑷出棧/*刪除鏈棧top的棧頂結點*/
int PopLinkStack (LinkStack* & s, ElemType &x)
{ LinkStack *p;
if(s==NULL) return 0;
x = s->data; /*將棧頂數據存入*x */
p = s; /*保存棧頂結點地址*/
s = s->next; /*刪除原棧頂結點*/
free (p); /*釋放原棧頂結點*/
return 1; /*返回新棧頂指針*/
}
(5) 取棧頂元素
int GetLinkStackTop (LinkStack* s, ElemType &x)
{
if(s==NULL) return 0;
x = s->data; /*將棧頂數據存入*x */
return 1; /*返回新棧頂指針*/
}
主函數怎麼寫吧
③ C語言:鏈棧的基本操作(代碼如下:幫我看看錯哪了)
#include<stdio.h>
#include<stdlib.h>
typedefstructStackNode
{
intdata;
structStackNode*next;
}SNode;
//只進棧一個元素
voidPush(SNode*s,inte)
{
SNode*p;
p=(SNode*)malloc(sizeof(SNode));
s->data=e;
p->next=s;
s=p;
//returns;
}
//連續進棧n個元素
voidPush_Series(SNode*s)
{
printf("請輸入進棧的元素數:");
intn,i,e;
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("請輸入第%2.d個進棧元素:",i+1);
scanf("%d",&e);
Push(s,e);
//printf("此階段的元素為:%2.d
",s->next->data);
}
}
voidPop(SNode*s)
{
if(s==NULL)
{
printf("棧空了!!!");
exit(0);
}
SNode*q;
inte;
e=s->data;
printf("*****************
");
printf("棧頂元素為:%d",e);
printf("*****************
");
q=s;
s=s->next;
free(q);
}
//★:s是形參,你在裡面申請的內存空間地址是無法賦值給調用此函數的s的!
voidInirStack(SNode**s) //★:∴應用指針的指針!(或者C++里用引用)
{
*s=(SNode*)malloc(sizeof(SNode));
(*s)->next=NULL;
}
intmain()
{
SNode*s; //★你這個s沒有申請內存空間!
/*
SNode*s=(SNode*)malloc(sizeof(SNode));
s->next=NULL;*/
InirStack(&s); //★此處要把指針的指針代入
Push_Series(s);
Pop(s);
printf("Helloworld!
");
return0;
}
④ C語言中使用stack頭文件
stack < item >s; //棧元素類型要定義成item
s.push(temp); //這樣才可以壓入結構體數據