【问题描述】输入一个整数序列,以单链表作为存储结构,将单链表中存储最大整数值的结点删除,然后按照链表从头到尾的顺序,将单链表中的整数存入顺序表,按照从大到小的顺序对顺序表排序,并输出顺序表。
【输入形式】整数序列,以空格做分隔,序列最多包含10个元素
【输出形式】整数序列,以空格做分隔
【样例输入】4 6 8 9 2 3
【样例输出】8 6 4 3 2
【样例说明】
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
typedef struct node
{
int data;
struct node* next;
}node;
node *Creatlist(){
node *head = new node[10];
head->next = NULL;
node* pre = head;;
int n;
char ch=0;
while (ch != '\n')
{
cin >> n;
ch = getchar();
node* p=new node;
p->data = n;
pre->next = p;
pre = p;
}
pre->next = NULL;
return head;
}
void Dete(node *head){
node *pre = head;
node*p = pre->next;
int max = -99999;
while(p!=NULL)
{
if (p->data > max)
{
max = p->data;
}
p = p->next;
}
p = pre->next;
while (p != NULL)
{
if (p->data == max)
{
pre->next = p->next;
p = pre->next;
}
p = p->next;
pre = pre->next;
}
}
void sortshow(node *head)
{
int temp;
for (node *pre = head->next; pre; pre = pre->next)
{
for (node *p = pre->next; p; p = p->next)
{
if (pre->data < p->data) {
temp = pre->data;
pre->data = p->data;
p->data = temp;
}
}
}
node *pre = head->next;
while (pre != NULL)
{
cout << pre->data << " ";
pre = pre->next;
}
}
int main()
{
node *head = Creatlist();
Dete(head);
sortshow(head);
return 0;
}