BJFUOJ:基于链存储结构的图书信息表的图书去重
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int num;
set <string> s;
struct book{
string bookno;
string name;
double price;
};
typedef struct Lnode{
book data;
struct Lnode *next;
}Lnode,*Linklist;
void Init_list(Linklist &l){
l = new Lnode;
l->next = NULL;
}
void input(Linklist &l){
string bookno;
string name;
double price;
cin>>n;
Linklist p,q;
p = l;
int nn = n;
while(nn--){
cin>>bookno>>name>>price;
if(!s.count(bookno))
{
s.insert(bookno);
q = new Lnode;
q->data.bookno = bookno;
q->data.name = name;
q->data.price = price;
q->next = NULL;
p->next = q;
p = q;
}
else n--;
}
}
void output(Linklist &l){
Linklist p = l->next;
cout<<n<<endl;
while(p)
{
cout<<p->data.bookno<<" "<<p->data.name<<" ";
printf("%.2lf\n",p->data.price );
p = p->next;
}
}
int main(){
Linklist l;
Init_list(l);
input(l);
output(l);
return 0;
}