建立双向循环链表 反方向输出数据
题目
请写一算法,该算法的功能是先通过键盘输入n个整型数据,建一个带头结点的双向循环链表,然后按照输入相反的次序依次输出这n个整型数据。
示例
假设输入:【1,2,3,4,5】
则输出为:【5,4,3,2,1】
分析
第一步: 建立循环链表
第二步:遍历循环链表
代码
第一种方法
建立一个双向链表,然后在最后的头尾相连,构成循环链表。
// 建立双向循环链表 反方向输出数据
DLinklist CREATEDLIN(int n){
DLinklist list=NULL,p,q;
list=(DLinklist)malloc(sizeof(DNode));
list->llink=NULL;
list->rlink=NULL;
q=list;
printf("input Start\n");
for (int i = 1; i <=n; i++) {
p=(DLinklist)malloc(sizeof(DNode));
scanf("%d",&(p->data));
p->rlink=NULL;
p->llink=q;