#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
struct node
{
int data;
struct node *next;
};
struct stack
{
node *head;
};
void push(struct stack *stack1,int data)
{
struct node *new_node= new node;
new_node->data=data;
if(stack1->head!=NULL)
new_node->next=stack1->head;
else
new_node->next=NULL;
stack1->head=new_node;
}
void pop(struct stack *stack1)
{
node *temp= new node;
if(stack1->head==NULL)
cout<<"EMPTY"<<endl;
else
{
temp=stack1->head;
stack1->head=(stack1->head)->next;
int t;
t=temp->data;
free(temp);
cout<<t<<" ";
}
}
void show(struct stack *stack1)
{
node *new_node=new node;
new_node=stack1->head;
if(stack1->head==NULL)
{
cout<<"EMPTY"<<endl;
return;
}
while(new_node!=NULL)
{
cout<<new_node->data<<" ";
new_node=new_node->next;
}
}
void peek(struct stack *stack1)
{
if(stack1->head==NULL)
cout<<"EMPTY";
else
cout<<stack1->head->data<<" ";
}
int main()
{
int temp,temp2;
struct stack *stack1=new stack;
stack1->head=NULL;
while(1)
{
cin>>temp;
switch(temp)
{
case 0: exit(0);
case 1: cin>>temp2;
cout<<endl;
push(stack1,temp2);
break;
case 2: pop(stack1);
cout<<endl;
break;
case 3: peek(stack1);
cout<<endl;
break;
case 4: show(stack1);
cout<<endl;
break;
}
}
return 0;
}
答案 0 :(得分:0)
来自C ++标准
1.3.14 [defns.parameter]
参数形式参数 形式参数
声明为a的一部分的对象或引用 函数声明或定义或在函数的catch子句中 异常处理程序,用于在函数入口处获取值或 处理程序
来自C标准
3.16 1参数 形式参数形式参数(不建议使用)
对象声明为函数声明或定义的一部分 获取函数入口的值或者来自的函数 以逗号分隔的列表,紧跟在括号后面 函数式宏定义中的宏名称
例如在这个函数声明中
void push(struct stack *stack1,int data);
stack1
和data
是形式参数。它们在进入函数时需要值(参数)。
请注意,因为stack1被声明为指向struct stack的指针,所以指针指向的对象的任何更改都将在退出函数后保留在对象中。