#include"stdio.h"
typedef struct stacknode
{
int date;
struct stacknode *next;
}stacknode,*linkstack;
void printfstack(linkstack &s)
void gostack(linkstack &s)
void outstack(linkstack &s)
void choicestack(linkstack &s)
void gostack(linkstack &s)
{
linkstack p;int n;
printf("请输入\n");
p=new stacknode;
scanf("%d",&p->date);
p->next=s;
s=p;
printf("是(1)否(0)继续\n");
scanf("%d",&n);
if(n==1)
gostack(s);
else
choicestack(s);
}
void outstack(linkstack &s)
{
if(s==NULL)
exit (1);
stacknode *p;int n;
p=s;
s=s->next;
delete p;
printf("是(1)否(0)继续\n");
scanf("%d",&n);
if(n==1)
outstack(s);
else
choicestack(s);
}
void printfstack(linkstack &s)
{
linkstack p;
if(s==NULL)
exit (1);
p=s;
if(p==NULL)
;
else
{
p=p->next;
printf("%d\t",p->date);
}
}
void choicestack(linkstack &s)
{ int n;
printf("1.进栈2.出栈3.输出其他.退出\n");
scanf("%d",&n);
switch(n)
{
case 1:gostack(linkstack s);break;
case 2:outstack(linkstack s);break
case 3:printfstack(linkstack s);break;
default:exit (1);
}
}
int main()
{
linkstack s,p;int n,i;
s=NULL;
printf("请输入进栈整数的个数\n");
scanf("%d",&n);
printf("请输入%d个数\n",n);
for(i=0;i<n;i++)
{
p=new stacknode;
scanf("%d",&p->date);
p->next=s;
s=p;
}
choicestack(s);
}
你没说是什么问题啊?而且提交代码最好用代码块
修改见注释,供参考:
#include <stdio.h>
typedef struct stacknode
{
int date;
struct stacknode* next;
}stacknode, * linkstack;
void printfstack(linkstack& s);//缺了 ‘;'分号
void gostack(linkstack& s); //修改
void outstack(linkstack& s); //修改
void choicestack(linkstack& s);//修改
void gostack(linkstack& s)
{
linkstack p; int n;
printf("请输入:\n");
p = new stacknode;
scanf("%d", &p->date);
p->next = s;
s = p;
printf("是(1)否(0)继续\n");
scanf("%d", &n);
if (n == 1)
gostack(s);
else
choicestack(s);
}
void outstack(linkstack& s)
{
if (s == NULL)
return; //exit(1);修改
stacknode* p;
int n;
p = s;
s = s->next;
delete p;
printf("是(1)否(0) 继续\n");
scanf("%d", &n);
if (n == 1)
outstack(s);
else
choicestack(s);
}
void printfstack(linkstack& s)
{
linkstack p;
if (s == NULL)
return; //exit(1); 修改
p = s;
//if (p == NULL) 修改
// ;
while(p) //else
{
printf("%d\t", p->date);
p = p->next;
}
printf("\n");
choicestack(s);
}
void choicestack(linkstack& s)
{
int n;
printf("1.进栈2.出栈3.输出其他.退出\n");
scanf("%d", &n);
switch (n)
{
case 1:gostack(s); break; //gostack(linkstack s);
case 2:outstack(s); break; //outstack(linkstack s);
case 3:printfstack(s); break; //printfstack(linkstack s);
default:n = 0; break; //exit(1);
}
if (n == 0) return;
}
int main()
{
linkstack s, p; int n, i;
s = NULL;
printf("请输入进栈整数的个数\n");
scanf("%d", &n);
printf("请输入%d个数\n", n);
for (i = 0; i < n; i++)
{
p = new stacknode;
scanf("%d", &p->date);
p->next = s;
s = p;
}
choicestack(s);
return 0;
}
什么错误,倒是发出来啊