using namespacestd;
typedef struct node
{
int data;
struct node* next;
}*PNode,Node;
PNode create(int a[],int n)
{
PNode header;
PNode p = header = new node;
if (!p)
{
cout <<"create failed!"<<endl;
return NULL;
}
p->data = a[0];
p->next =NULL;
for (int i =1;i < n;++i)
{
PNode q = newnode;
if (!q)
{
--i;
continue;
}
q->data = a[i];
q->next = p->next;
p->next = q;
p = q;
}
return header;
}
void deleteNode(PNode header)
{
PNode p = header;
while (p)
{
PNode q = p->next;
PNode max= p;
PNode prev = p;
PNode tempP= NULL;
while (q)
{
if (max->data < q->data)
{
max = q;
tempP = prev;
}
prev = q;
q = q->next;
}
if (!max->next)
{
if (tempP)
{
tempP->next =NULL;
}
else
{
if(max == header)
{
header = header->next;
}
}
}
else if(max != header)
{
tempP->next = max->next;
}
else if(max == header)
{
header = header->next;
}
cout<<max->data<<" ";
delete max;
max =NULL;
p = header;
}
}
void showLink(PNode header)
{
PNode p = header;
while (p)
{
cout<<p->data<<" ";
p = p->next;
}
}