首页 > 代码库 > 逆序建立链表

逆序建立链表

题目描述
输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。
输入
第一行输入整数N;;
第二行依次输入N个整数,逆序建立单链表。
输出
依次输出单链表所存放的数据。
示例输入
10
11 3 5 27 9 12 43 16 84 22
示例输出
22 84 16 43 12 9 27 5 3 11
#include <iostream>
#include <malloc.h>
using namespace std;
struct biao
{
    int data;
    struct biao *next;
};
void shu_ru(struct biao *head,int n)
{

    for(int i=1; i<=n; i++)
    {
        struct biao *p=(struct biao *)malloc(sizeof(struct biao));
        cin>>p->data;

        p->next=head->next;
        head->next=p;
    }
}
void shu_chu(struct biao *head)
{
    cout<<head->next->data;free(head);
    head=head->next;
    while(head->next)
    {
        cout<<" "<<head->next->data;
        head=head->next;
        free(head);
    }
}
int main(void)
{
    struct biao *head=NULL;
    head=(struct biao *)malloc(sizeof(struct biao));
    head->next=NULL;
    int t;
    cin>>t;
    shu_ru(head,t);
    shu_chu(head);
    return 0;
}
/**************************************
	Problem id	: SDUT OJ 2117 
	User name	: 李俊 
	Result		: Accepted 
	Take Memory	: 464K 
	Take Time	: 0MS 
	Submit Time	: 2013-12-09 21:45:23  
**************************************/