1640: 线性表-初始化、建立(头插法)及打印(双向链表)
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
正确:6
提交:15
正确率:40.00% 命题人:
题目描述
双向链表的初始化、建立(头插法)及打印输出
输入格式
第1行输入一个整数n,表示双向链表中的元素个数
第2行输入n个整数,表示双向链表中存储的数据元素
第2行输入n个整数,表示双向链表中存储的数据元素
输出格式
第1行正向输出n个整数,每两个整数之间用一个空格隔开
第2行反向输出n个整数,每两个整数之间用一个空格隔开
第2行反向输出n个整数,每两个整数之间用一个空格隔开
输入样例 复制
5
1 2 3 4 5
输出样例 复制
5 4 3 2 1
1 2 3 4 5
提示
#include "stdio.h" #include "stdlib.h" typedef int ElemType; typedef struct Node { ElemType data; struct Node *prior; struct Node *next; } LNode,*linkList; void initList(linkList &L); void inputList(linkList L); void printList(linkList L); int main(void) { linkList head; initList(head); inputList(head); printList(head); return 0; } /*仅提交以下代码*/ void initList(linkList &L) { L=new LNode; L->prior=_______________; L->next=________________; } void inputList(linkList L) { int n; linkList p; scanf("%d",&n); for(int i=0; i<n; i++) { p=new LNode; scanf("%d",&p->data); ____________________; } } void printList(linkList L) { linkList p=L->next,q; while(p!=NULL) {//从左向右移动指针输出数据,并把指针q移动到双向链表的尾部 __________________; } printf("\n"); while(q!=L) {//从右向左移动指针输出数据 ________________; } printf("\n"); }