HUST-遍历链表

题目描述

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

输入描述:

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

输出描述:

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

输入

4
3 5 7 9

输出

3 5 7 9

思路:本题我的做法中涉及尾插法建立单链表以及遍历单链表输出data值
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
typedef struct LNode{   //定义单链表结点类型
    int data;           //数据域
    struct LNode *next; //指针域
}LNode,*LinkList;
LinkList L;
vector<int> vec;
int n,num;
LinkList List_TailInsert(LinkList &L);
void outPutValue(LinkList L);
int main()
{
    while(cin>>n)
    {
        for(int i=0;i<n;i++)
        {
            cin>>num;
            vec.push_back(num);
        }
        sort(vec.begin(),vec.end());
        List_TailInsert(L);
        outPutValue(L);
    }
    return 0;
}
//尾插法建立带头结点的链表
LinkList List_TailInsert(LinkList &L)
{
    int i=0;
    L=(LinkList)malloc(sizeof(LNode));
    LNode *s,*r=L;                     //r为表尾指针
    while(i<vec.size())
    {
        s=(LNode*)malloc(sizeof(LNode));
        s->data=vec[i];
        r->next=s;
        r=s;
        i++;
    }
    r->next=NULL;
    return L;
}
void outPutValue(LinkList L)
{
    LNode *s=L->next;
    while(s!=NULL)
    {
        cout<<s->data<<" ";
        s=s->next;
    }
}
 
天晴了,起飞吧
原文地址:https://www.cnblogs.com/jianqiao123/p/14370543.html