SHAOXIAOJ正在加载中...

1640: 线性表-初始化、建立(头插法)及打印(双向链表)

金币值:2 定数:10 时间限制:1.000 s 内存限制:128 M
正确:6 提交:15 正确率:40.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-线性表

题目描述

双向链表的初始化、建立(头插法)及打印输出

输入格式

第1行输入一个整数n,表示双向链表中的元素个数
第2行输入n个整数,表示双向链表中存储的数据元素

输出格式

第1行正向输出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");
}