資料結構實驗之連結串列二:逆序建立連結串列

HowieLee59發表於2019-02-14

Problem Description

輸入整數個數N,再輸入N個整數,按照這些整數輸入的相反順序建立單連結串列,並依次遍歷輸出單連結串列的資料。

Input

第一行輸入整數N;;
第二行依次輸入N個整數,逆序建立單連結串列。

Output

依次輸出單連結串列所存放的資料。

Sample Input

10
11 3 5 27 9 12 43 16 84 22 

Sample Output

22 84 16 43 12 9 27 5 3 11 

Hint

不能使用陣列!

Source


#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;

typedef struct Node{
    int data;
    struct Node *next;
}node;

void creat(node * &list,int a){
    node *now;
    list = new node;
    list->next = NULL;
    int b;
    for(int i = 0 ; i < a ; i++){
        now = (node *)malloc(sizeof(node));
        cin >> b;
        now->data = b;
        now->next = list->next;
        list->next = now;
    }
}


void print(node * &list){
    node *p = list->next;
    while(p!=NULL)
    {
        if(p->next!=NULL)
            printf("%d ",p->data);
        else
            printf("%d\n",p->data);
        p = p->next;
    }
}

int main(){
    ios::sync_with_stdio(false);
    node *list;
    int a;
    cin >> a;
    creat(list,a);
    print(list);
    return 0;

}

 

相關文章