1640: 线性表-初始化、建立(头插法)及打印(双向链表)
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
解决:13
提交:32
正确率:40.63% 命题人:
题目描述
双向链表的初始化、建立(头插法)及打印输出
输入
第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");
}