九度OJ 题目1181:遍历链表

来源:互联网 发布:mac分销渠道设计方案 编辑:程序博客网 时间:2024/05/22 07:48

题目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;    }}

我的血泪史


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

0 0