逆序建立链表

题目描述

输入整数个数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
**************************************/

逆序建立链表,布布扣,bubuko.com

时间: 2024-10-10 11:15:41

逆序建立链表的相关文章

数据结构实验之链表二:逆序建立链表

数据结构实验之链表二:逆序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据. Input 第一行输入整数N;:第二行依次输入N个整数,逆序建立单链表. Output 依次输出单链表所存放的数据. Sample Input 10 11 3 5 27 9 12 43 16 84 22 Sample Output 22

2117=数据结构实验之链表二:逆序建立链表

1 #include <stdio.h> 2 #include <stdlib.h> 3 struct node 4 { 5 int data; 6 struct node*next; 7 }; 8 int main() 9 { 10 int n,i; 11 struct node*head,*p; 12 head=(struct node*)malloc(sizeof(struct node));//为head在这个链表中开辟一个空间. 13 head->next=NULL

数据结构之 线性表 逆序简历链表

数据结构实验之链表二:逆序建立链表 Time Limit: 1000MS Memory limit: 65536K 题目描述 输入整数个数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 比顺序创建链表还要简单! #inc

逆序单链表

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

剑指Offer03 逆序输出链表

多写了个逆序链表 1 /************************************************************************* 2 > File Name: 03_Pirnt_LinkList.c 3 > Author: Juntaran 4 > Mail: [email protected] 5 > Created Time: 2016年08月24日 星期三 02时04分25秒 6 ***************************

面试:用 Java 逆序打印链表

昨天的 Java 实现单例模式 中,我们的双重检验锁机制因为指令重排序问题而引入了 volatile 关键字,不少朋友问我,到底为啥要加 volatile 这个关键字呀,而它,到底又有什么神奇的作用呢? 对 volatile 这个关键字,在昨天的讲解中我们简单说了一下:被 volatile 修饰的共享变量,都会具有下面两个属性: 保证不同线程对该变量操作的内存可见性. 禁止指令重排序. 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量. 可见性:一个线

链表逆序+判断链表是否回文

单链表逆序详解 1.具有链表头的单链表 假设需要逆序的单链表为: 则逆序以后的链表为: 过程: (1)取p1指向header->next (p1=stu->next);p2保留p1->next(p2=p1->next);将p1->next置为NULL,因为单链表逆序以后,当前的p1节点为尾节点 p1->next=NULL; (2)取p3保留p2->next (p3=p2->next);将p2插入p1之前(p2->next = p1);p1指向p2指向的

微软算法100题24 就地逆序单链表

第24 题:链表操作,单链表就地逆置 思路: 本来想拿两个指针分别指向当前节点和上一节点,在向后移动指针的过程中将当前节点的next指针逆向为上一节点,但这样就无法继续向后移动当前节点了.... 转换一下思路,对于n各节点,逆序的操作可以分解为把后面n-1个节点逆序,然后再把第一个节点放在已经逆序好的n-1个元素后面就可以了 -> f(n) = [f(n-1), 1] 最后还是回到了递归上... 其实递归是不是也可以归于divide&conquer范畴呢? 1 package com.rui

(7)--逆序创建链表及链表反转

1 #include <iostream> 2 using namespace std; 3 typedef struct LNode 4 { 5 int data; 6 LNode *next; 7 }LNode,*LinkList; 8 //逆位序输入n个元素的值,建立带头结点的单链线性表 9 LinkList createLinklist(LinkList &L) 10 { 11 L = (LinkList)malloc(sizeof(LNode)); 12 L->next