📄 a.cpp
字号:
#include<iostream.h>
#include<string.h>
class mennode
{
private:
char *name;
char *address;
int salary;
public:
mennode()
{
name=0;
address=0;
salary=0;
}
mennode(char *x,char*y,int z)
{
name=new char[strlen(x)+1];
address=new char[strlen(y)+1];
strcpy(name,x);
strcpy(address,y);
salary=z;
}
setdata(char *x,char*y,int z)
{
if(name)
delete[] name;
if(address)
delete[] address;
name=new char[strlen(x)+1];
address=new char[strlen(y)+1];
strcpy(name,x);
strcpy(address,y);
salary=z;
}
~mennode()
{
if(name)
delete[] name;
if(address)
delete[] address;
cout<<"destructed"<<endl;
}
show()
{
cout<<"the name of the person is "<<endl<<name<<endl;
cout<<"the address of the person is "<<endl<<address<<endl;
cout<<"the salary of the person is "<<endl<<salary<<endl;
}
int isgreat(mennode *a)
{
return (a->salary-salary);
}
int isequal(mennode *a)
{
return (salary==a->salary);
}
};
class node
{
private:
mennode *info;
node *prev,*next;
public:
node()
{
info=0;
prev=0;
next=0;
}
~node()
{
if(info)
delete info;
if(prev)
delete prev;
if(next)
delete next;
cout<<"the object has been destructed"<<endl;
}
node(node &x)
{
info=x.info;
prev=x.prev;
next=x.next;
}
mennode*getinfo()
{
return info;
}
fillmennode(mennode *a)
{
info=a;
}
friend class list;
};
class list
{
private:
node *head,*tail;
public:
list()
{
head=0;
tail=0;
}
~list()
{
if(head)
delete head;
if(tail)
delete tail;
}
addnode(node*a)
{
if(head==0)
{
head=tail=a;
a->prev=a->next=0;
}
else
{
node*pn;
pn=head;
while(pn)
{
if(pn->info->isgreat(a->info)<=0)
break;
else
pn=pn->next;
}
if(pn==0)
{
tail->next=a;
a->prev=tail;
tail=a;
a->next=0;
}
else
{
if(head==pn)
{
a->next=head;
head->prev=a;
a->prev=0;
head=a;
}
else
{
pn->prev->next=a;
a->next=pn;
a->prev=pn;
pn->prev=a;
}
}
}
}
showlist()
{
node *p;
p=head;
while(p)
{
cout<<p->getinfo()->show()<<endl;
p=p->next;
}
}
};
main()
{
node a,b,e;
mennode c("weihui","nudt",2000);
c.show();
a.fillmennode(&c);
a.getinfo()->show();
c.setdata("xiaoming","iiu",2300);
c.show();
mennode g;
g.setdata("xinyan","jnjq",3333);
b.fillmennode(&g);
b.getinfo()->show();
list l;
l.addnode(&a);
l.addnode(&b);
mennode f;
f.setdata("xy","sd",4442);
e.fillmennode(&f);
e.getinfo()->show();
l.addnode(&e);
l.showlist();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -