九度OJ 题目1181:遍历链表

该博客介绍了如何解决九度在线判题系统中的题目1181,即创建一个升序链表并遍历输出。博客内容包括题目描述、输入输出格式、样例数据以及该题目的来源——2000年华中科技大学计算机研究生机试真题。博主分享了个人解题经历。
摘要由CSDN通过智能技术生成

题目1181:遍历链表

题目描述:

建立一个升序链表并遍历输出。

输入:

输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。

输出:

可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。

样例输入:

4
3 5 7 9

样例输出:

3 5 7 9

来源:

2000年华中科技大学计算机研究生机试真题

/********************************* 
*   日期:2016-1-9 
*   作者:Pt 
*   题号: 九度OJ 题目1181:遍历链表 
*   来源:http://ac.jobdu.com/problem.php?pid=1181 
*   结果:AC 
*   来源:2000年华中科技大学计算机研究生机试真题 
*   总结: 1.可能有多组测试数据!!!  2.思路要清晰 3.* 与 & 
**********************************/  

#include<stdio.h>
#include<stdlib.h>

typedef struct LNode
{
    int data;
    struct LNode * next;//struct
}LNode;

typedef LNode* LinkList;

LinkList InitL(void);
void UpAdd(LinkList L, int t);
void printL(LinkList L);

int main()
{
    LinkList link_list;
    int n, i, t;
    while(scanf("%d", &n)==1) //可能有多组测试数据!!! 
    {
        link_list = InitL();
        for(i = 0; i < n; i ++)
        {
            scanf("%d", &t);
            UpAdd(link_list, t);
        }
        printL(link_list);
    }
    return 0;   
}

LinkList InitL(void)
{
    LinkList link_list;
    link_list = (LinkList)malloc(sizeof(LNode));
    link_list-> next = NULL;
    return link_list; 
}

void UpAdd(LinkList L, int t)
{
    LinkList p = L; 
    LinkList q = (LinkList)malloc(sizeof(LNode));
    q -> data = t;
    q -> next = NULL;
    while(p -> next != NULL && t > p-> next -> data) 
        p = p -> next; //寻找插入位置p,在p之后插入 
    if(p -> next == NULL) 
        p -> next = q;
    else 
    {
        q -> next = p -> next;
        p -> next = q;
    }
}

void printL(LinkList L)
{
    LinkList p = L->next;
    while(p != NULL)
    {
        if(p->next == NULL)
            printf("%d\n", p -> data);
        else
            printf("%d ", p->data);
        p = p -> next;
    }
}
我的血泪史


不说了,吃饭去,下午复习电路 〒_〒

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值