链栈基本操作进出栈

AAAbloom 2017-05-07 10:39:55
#include "iostream.h"
#define error 0
typedef int elemtype;
typedef struct stacknode
{
elemtype data;
struct stacknode *next;

}stacknode, *linkstack;

void initstack(linkstack &s)
{s=new stacknode;
s=NULL;
void input(linkstack &s,int n)
{ int e;linkstack p;
cout<<"请输入链栈元素值:";

for(int i=0;i<n;i++)
cin>>e;
p=new stacknode;

p->data=e;
p->next=s;
s=p;
}
void output(linkstack &s)
{ linkstack p;
p=s;
cout<<"当前链栈中元素为:";
while(p){
cout<<p->data<<" ";
p=p->next;
//delete p;
}

//cout<<"链栈为空!";
}
void main()
{
linkstack s;
initstack(s);
int n;
cout<<"请输入链栈中元素个数:";
cin>>n;
input(s,n);
output(s);

}

为啥出栈只能取出栈顶元素啊
...全文
445 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AAAbloom 2017-05-09
  • 打赏
  • 举报
回复
谢谢
AAAbloom 2017-05-07
  • 打赏
  • 举报
回复
大神,能帮我看看哪出错了么?我想输出栈中所有元素,但这个只能输出栈顶元素。
ooolinux 2017-05-07
  • 打赏
  • 举报
回复
栈的概念定义的,后进先出,栈好比一叠盘子,每次放盘子、取盘子都是在(从)最上面。
ooolinux 2017-05-07
  • 打赏
  • 举报
回复
void input(linkstack &s,int n) { int e;linkstack p; cout<<"请输入链栈元素值:"; for(int i=0;i<n;i++) { cin>>e; p=new stacknode; p->data=e; p->next=s; s=p; } } void initstack(linkstack &s) {s=new stacknode; //这句貌似多余 s=NULL; }
AAAbloom 2017-05-07
  • 打赏
  • 举报
回复
NULL;后少了一个“}” 能通过
ooolinux 2017-05-07
  • 打赏
  • 举报
回复
void initstack(linkstack &s) //你这个代码不全吧,能编译通过? {s=new stacknode; s=NULL; void input(linkstack &s,int n) { int e;linkstack p; cout<<"请输入链栈元素值:";

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧