链表查找(线性表)

该博客讨论如何在非空线性链表中找到数据域值最小的节点,并将其移动到链表的开头,而不使用额外的链结点。提供了输入输出示例及问题分析。
摘要由CSDN通过智能技术生成

题目描述

已知非空线性链表由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(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值