题目描述
已知非空线性链表由list指出,链结点的构造为(data,link).请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点
输入
输入长度n:6
输入数据:4 2 6 88 34 6
输出
2 4 6 88 34 6
样例输入
5
11 6 8 7 9
样例输出
6 11 8 7 9
分析:
此题,也是考察链表的基本知识。对链表的查找极其应用。
#include"stdio.h"
#include"string.h"
typedef struct a{
int data;
struct a *next;
}*LinkList,Node;
void CreatListTail(LinkList *L,int m)
{
LinkList p,r;
int i;
*L=(LinkList)malloc(sizeof(Node));
r=*L;
for(i=0;i<m;i++)
{
p=(LinkList)malloc(sizeof(Node));
scanf("%d",&(p->data));
r->next=p;
r=p;
}
r->next=NULL;
}
int main()
{
LinkList head,min,pre,P,top;
int n;
while(~scanf("%d",&n))
{
CreatListTail(&