先看一个问题
【问题描述】
输入n个整型数据,将其中相同的数据删除只剩一个为止。
【输入形式】
输入分三行,第一行n值,第二行n个数据,数据之间用一个空格分隔
【输出形式】
在一行上输出数据,数据之间有且只有一个空格。
【样例输入】
5
1 2 3 2 3?
【样例输出】
1 2 3
想到可以用栈写,就试着写了一下
#include<iostream>
using namespace std;
struct queue
{
int data[100];//队列的主体,用来存储内容
int head, //队首
int tail;//队尾
};
int main()
{
struct queue q;
int i,n;
int judge[100];//进行判断的数组
cin >> n;
for (i = 1; i <= n; i++)//初始化数组
{
judge[i] = 0;
}
//初始化队列
q.head = 1;
q.tail = 1;
//向队列插入n个数
for ( i = 1; i <= n; i++)
{
cin >> q.data[q.tail];
judge[q.data[q.tail]]++;
//进行判断
if (judge[q.data[q.tail]]!=1)continue;
else
q.tail++;
}
while (q.head < q.tail)//当队列不为空的时候执行循环
{
cout << q.data[q.head]<<" ";
q.head++;
}
return 0;
}
计算机小白写的代码,各位大佬看到轻喷
|