在c++中显示弹出的元素
show the popped element in c++?
我在这个程序的最后一部分有问题。如何显示已弹出的元素?
我试图改变循环,但不能…
#include<iostream.h>
typedef struct TINDANAN
{
int atas;
char senarai[4];
} tindanan;
void cipta(tindanan *t);
void push(tindanan *t);
void pop(tindanan *t);
int penuh(tindanan *t);
int kosong(tindanan *t);
void main()
{
int pilihan,jawapan,i;
tindanan t;
cipta(&t);
cout<<"n1->Pushtn 2->Pop tn 3-> Keluar n pilihan =";
cin>>pilihan;
while(pilihan !=3)
{
switch (pilihan)
{
case 1: push(&t);
break;
case 2: pop(&t);
break;
default : cout<<"nTidak Sah";
}
cout<<"n1->Pushtn 2->Pop tn 3-> Keluar n pilihan =";
cin>>pilihan;
}
}
void cipta (tindanan *t)
{
t->atas =-1;
}
int penuh (tindanan *t)
{
if (t->atas ==3)
return (1);
else
return (0);
}
void push (tindanan *t)
{
int i;
char data;
if (penuh(t) ==1)
cout<<"nTindanan Penuhn";
else
{
cout<<"nHuruf Character: ";
cin>>data;
t->atas++;
t->senarai[t->atas]=data;
cout<<"nKandungan Timbunan :nIndex | Datan";
for(i=t->atas;i>-1;i--)
cout<<"| "<<i<< " | "<< t->senarai[i];
}
cout<<"n";
}
int kosong (tindanan *t)
{
if (t->atas ==-1)
return (1);
else
return (0);
}
void pop (tindanan *t)
{
int i;
if(kosong(t) == 1)
cout<<"nTindanan Kosongn";
else
{
t->atas--;
cout<<"nkandungan Timbunan :nIndex | datan";
for(i=t->atas;i>-1;i--)
cout<<" | "<<i<< " | "<<( t->senarai[i]);
cout<<"nPop Item";
for(i=3;i>t->atas;i--)
cout<<"| "<<i<< " | "<< t->senarai[i];
}
}
对不起,我今年刚学c++。
我不确定你在pop函数中的第二个循环要做什么,但是这个修改后的pop应该显示弹出的值以及现有的内容。
void pop (tindanan *t)
{
int i;
if(kosong(t) == 1)
cout<<"nTindanan Kosongn";
else
{
cout<<"nPop Item: " << (t->senarai[t->atas]);
t->atas--;
cout<<"nkandungan Timbunan :nIndex | datan";
for(i = t->atas; i > -1; i--)
cout<<" | "<<i<< " | "<<( t->senarai[i]);
}
}
但是一般来说,让pop返回项目是有意义的,因为这是事情通常的工作方式。不过,push通常也会获取要推送的项。
或者你可以像这样写pop,它会返回弹出的项目,然后你可以按照你想要的方式显示它。
char pop (tindanan *t)
{
char popped_item = -1;
int i;
if(kosong(t) == 1)
cout<<"nTindanan Kosongn";
else
{
cout<<"nPop Item: " << (t->senarai[t->atas]);
popped_item = t->senarai[t->atas];
t->atas--;
cout<<"nkandungan Timbunan :nIndex | datan";
for(i = t->atas; i > -1; i--)
cout<<" | "<<i<< " | "<<( t->senarai[i]);
}
return popped_item;
}
使pop返回一个值,并使该值等于您正在弹出的元素(在我看来,这是您打印的值)。
相关文章:
- 仅显示链表的最后一个元素
- 显示矢量的所有元素
- 在 QListView 中显示最后一个元素
- 在数组中显示第一个元素用户输入
- 尝试从列表中随机选取单个元素并将其显示为C++
- 为什么将函数的返回类型从结构节点*更改为void后,链表的元素没有显示create_ll和显示?
- 我有一个嵌套数组,它由另一个数组中的元素组成,这些元素分组为2.之后,我想显示每个元素的属性
- 数组:如何在指定索引之前显示数组的第一个和最后一个元素以及数组元素的差异?
- 代码是否有效.如果我想显示第一个元素?如果不是,那么 s.begin() 会返回什么?
- C++ rezing 动态数组最多可以处理一定数量的元素,但在某些时候会崩溃并显示错误 (0XC0000005)
- 编写一个递归功能,该功能采用数组并以相反顺序显示元素,而无需在末尾启动数组的索引
- 哪些更好的方法可以显示使用C STL创建的堆栈而不弹出每个元素的方法
- 用于显示矩阵元素的C 函数显示垃圾值
- 为什么这个 while 循环不显示第一个元素?
- 如何显示图形邻接列表的元素?
- 我写了此方法来删除链接列表的重复元素,但它显示了分段故障,原因
- 如何在不使用 C++ 函数的情况下显示链表中的元素
- strlen 显示数组元素的数量错误
- 更新模型/视图方案中 QXXXView (QTableView, QTreeView,..) 元素的显示工具提示
- Visual Studio 2013 C++:STL 容器的元素显示在调试器中