#include<bits/stdc++.h>
using namespace std;
struct Node{
int reg;
string name;
float cg;
Node*next;
};
Node*SortedInsert(Node*root,int reg,string name,float cg)
{
Node*newnode=new Node();
newnode->next=NULL;
newnode->reg=reg;
newnode->name=name;
newnode->cg=cg;
Node*currnode,*prevnode;
currnode=root;
prevnode=NULL;
if(root==NULL)
{
root=newnode;
return root;
}
if(reg<currnode->reg || name<currnode->name || cg<currnode->cg)
{
newnode->next=root;
root=newnode;
return root;
}
while(currnode!=NULL)
{
if(currnode->reg<reg || currnode->name<name || currnode->cg<cg)
{
prevnode=currnode;
currnode=currnode->next;
}
else
{
prevnode->next=newnode;
newnode->next=currnode;
return root;
}
}
prevnode->next=newnode;
newnode->next=NULL;
return root;
}
void Print(Node*root)
{
Node*currnode;
currnode=root;
while(currnode!=NULL)
{
cout<<"reg:"<<currnode->reg<<"name:"<<currnode->name<<"cg:"<<currnode->cg<<endl;
currnode=currnode->next;
}
cout<<endl;
}
int main()
{
Node*root=NULL;
root=SortedInsert(root,98,"vu",3.45);
root=SortedInsert(root,110,"Xu",2.78);
Print(root);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IE5vZGV7CmludCByZWc7CnN0cmluZyBuYW1lOwpmbG9hdCBjZzsKTm9kZSpuZXh0Owp9OwoKCk5vZGUqU29ydGVkSW5zZXJ0KE5vZGUqcm9vdCxpbnQgcmVnLHN0cmluZyBuYW1lLGZsb2F0IGNnKQp7Ck5vZGUqbmV3bm9kZT1uZXcgTm9kZSgpOwpuZXdub2RlLT5uZXh0PU5VTEw7Cm5ld25vZGUtPnJlZz1yZWc7Cm5ld25vZGUtPm5hbWU9bmFtZTsKbmV3bm9kZS0+Y2c9Y2c7Ck5vZGUqY3Vycm5vZGUsKnByZXZub2RlOwpjdXJybm9kZT1yb290OwpwcmV2bm9kZT1OVUxMOwppZihyb290PT1OVUxMKQp7CnJvb3Q9bmV3bm9kZTsKcmV0dXJuIHJvb3Q7Cn0KaWYocmVnPGN1cnJub2RlLT5yZWcgfHwgbmFtZTxjdXJybm9kZS0+bmFtZSB8fCBjZzxjdXJybm9kZS0+Y2cpCnsKbmV3bm9kZS0+bmV4dD1yb290Owpyb290PW5ld25vZGU7CnJldHVybiByb290Owp9CndoaWxlKGN1cnJub2RlIT1OVUxMKQp7CmlmKGN1cnJub2RlLT5yZWc8cmVnIHx8IGN1cnJub2RlLT5uYW1lPG5hbWUgfHwgY3Vycm5vZGUtPmNnPGNnKQp7CnByZXZub2RlPWN1cnJub2RlOwpjdXJybm9kZT1jdXJybm9kZS0+bmV4dDsKfQplbHNlCnsKcHJldm5vZGUtPm5leHQ9bmV3bm9kZTsKbmV3bm9kZS0+bmV4dD1jdXJybm9kZTsKcmV0dXJuIHJvb3Q7Cn0KfQpwcmV2bm9kZS0+bmV4dD1uZXdub2RlOwpuZXdub2RlLT5uZXh0PU5VTEw7CnJldHVybiByb290Owp9Cgp2b2lkIFByaW50KE5vZGUqcm9vdCkKewpOb2RlKmN1cnJub2RlOwpjdXJybm9kZT1yb290Owp3aGlsZShjdXJybm9kZSE9TlVMTCkKewpjb3V0PDwicmVnOiI8PGN1cnJub2RlLT5yZWc8PCJuYW1lOiI8PGN1cnJub2RlLT5uYW1lPDwiY2c6Ijw8Y3Vycm5vZGUtPmNnPDxlbmRsOwpjdXJybm9kZT1jdXJybm9kZS0+bmV4dDsKfQpjb3V0PDxlbmRsOwp9CmludCBtYWluKCkKewpOb2RlKnJvb3Q9TlVMTDsKCnJvb3Q9U29ydGVkSW5zZXJ0KHJvb3QsOTgsInZ1IiwzLjQ1KTsKcm9vdD1Tb3J0ZWRJbnNlcnQocm9vdCwxMTAsIlh1IiwyLjc4KTsKUHJpbnQocm9vdCk7Cgp9