| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1142 人关注过本帖
标题:[求助]怎样让双链表逆序输出?(内有错误程序)
只看楼主 加入收藏
卡卡小博士
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-1-12
收藏
 问题点数:0 回复次数:6 
[求助]怎样让双链表逆序输出?(内有错误程序)

这是小弟我编的,是不是我的tail没指到表尾?只能正过来输出,不能反过来输出诶,哪位高手能解答下啊?不甚感激!
include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

typedef struct node{
int data;
struct node *next;
struct node *prior;
}Node,*LinkList;

void CreateList(LinkList *head)
{
LinkList p,q;
int x;
if((*head=(Node *)malloc(sizeof(Node)))==NULL) exit(1);
(*head)->next=(*head)->prior=NULL;
q=(*head);
printf("please input data:\n");
scanf("%d",&x);
do
{
if((p=(Node *)malloc(sizeof(Node)))==NULL) exit(1);
p->data=x;
p->next=NULL;
p->prior=q;
q->next=p;
q=p;
p=NULL;
printf("please input number:\n");
fflush(stdin);
scanf("%d",&x);
}while(x!=0);
}


void print1(LinkList head)
{
LinkList p;
p=head->next;
while(p!=NULL)
{
printf("%d -> ",p->data);
p=p->next;
}
}

void print2(LinkList tail)
{
LinkList p;
p=tail->prior;
while(p!=NULL)
{
printf("%d -> ",p->data);
p=p->prior;
}
}
main()
{ LinkList head,tail;
CreateList(&head);
print1(head);
printf("\n");
print2(tail);
}

搜索更多相关主题的帖子: 逆序 双链 输出 
2007-01-12 22:44
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
do
{
if((p=(Node *)malloc(sizeof(Node)))==NULL) exit(1);
p->data=x;
p->next=NULL;
p->prior=q;
q->next=p;
q=p;
p=NULL;//有点画蛇添足的味道
printf("please input number:\n");
fflush(stdin);
scanf("%d",&x);
}while(x!=0);
另外
main()
{ LinkList head,tail;
CreateList(&head);
print1(head);
printf("\n");
print2(tail);
}
tail没有东西吧

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-01-13 11:59
卡卡小博士
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-1-12
收藏
得分:0 
怎么让tail指到表尾呢?不太懂诶...能点播一下伐???
2007-01-13 16:07
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
做一个函数,让他返回指向最后的指针返回给tail
然后再操作

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-01-14 11:42
卡卡小博士
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-1-12
收藏
得分:0 
感谢版主大大..
2007-01-14 17:02
pyc21
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-16
收藏
得分:0 
do
{
p=p->front;
cout<<p->data<<endl;
} while(p!=h->next);
呵呵,应该可以把

2007-01-14 17:08
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
按理说双向链表直接可以从头开始走prior这个路线逆序.

倚天照海花无数,流水高山心自知。
2007-01-14 19:24
快速回复:[求助]怎样让双链表逆序输出?(内有错误程序)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028729 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved