| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1686 人关注过本帖
标题:[求助]求问版主:这个解答的详细内容
只看楼主 加入收藏
一猪冲天
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-10-21
收藏
 问题点数:0 回复次数:22 
[求助]求问版主:这个解答的详细内容
题目:
编写反向显示单链表各结点的值的递归算法。单链表为:
A,V,U,E,B,C,L,D,X,Y,M,H

解答:
void print_link_list(node *head)//不带头结点
{ if(head->next==NULL)
{
printf("%5d-->",head->info);
return;
}
else
{
print_link_list(head->next);
printf("%5d-->",head->info);
}
}
斑竹,这个解答好象并不完整吧,还要定义一个链表吗?
麻烦详细讲一下,新人太弱,在此先谢过
搜索更多相关主题的帖子: 详细内容 版主 解答 
2006-10-26 13:40
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
当然先要创建链表啦,要不然怎么遍历

2006-10-26 18:26
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 

以上代码似乎不是反向显示的


c++/C + 汇编 = 天下无敌
2006-10-27 09:43
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
以下是引用热情依然在2006-10-27 9:43:18的发言:

以上代码似乎不是反向显示的

是反向的


2006-10-27 11:03
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#define NULL 0
#include<malloc.h>
#include <stdio.h>
typedef char datatype;
typedef struct link_node{
datatype info;
struct link_node *next;
}node;
typedef node* nodelink;

nodelink buildlink() /* 尾插法*/
{
datatype x;
nodelink head,s;
nodelink p2;
head=NULL;
p2=NULL;
printf("please input the link:");
scanf("%c",&x);
while(x!='\n')
{
s=(nodelink)malloc(sizeof(node));
s->info=x;
if (head==NULL) head=s;
else p2->next=s;
p2=s;
scanf("%c",&x);
}
if(p2) p2->next=NULL;
return(head);
}

void print_link_list(node *head)
{
if(head->next==NULL)
{
printf("%5c-->",head->info);
return;
}
else
{
print_link_list(head->next);
printf("%5c-->",head->info);
}
}
int main()
{ nodelink head;
head=buildlink();
print_link_list(head);
return(0);
}


倚天照海花无数,流水高山心自知。
2006-10-27 11:15
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


还有点小问题.就是它输出的时候把NULL也输出了.

倚天照海花无数,流水高山心自知。
2006-10-27 11:18
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
以下是引用nuciewth在2006-10-27 11:18:04的发言:


还有点小问题.就是它输出的时候把NULL也输出了.

没有输出NULL啊


2006-10-27 11:34
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用菜鸟上路在2006-10-27 11:03:27的发言:

是反向的

我测试过了,是正向的
我改了下,以下代码才是反向的,不过用C++实现,不过不影响阅读
void Display(ListNode<T> *node)
{
static bool flag = false;
if(node->next() == 0)
{
std::cout << node->GetDate() << " ";
flag = true;
return;
}
else{
Display(node->next());
}
if( flag == true)
{
std::cout << node->GetDate() << " ";
}
}


c++/C + 汇编 = 天下无敌
2006-10-27 12:54
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
LZ的确实是正向的,没仔细看
void print_link_list(node *head)//不带头结点
{ if(head->next==NULL)
{
printf("%5d-->",head->info);
return;
}
else
{
print_link_list(head->next);
printf("%5d-->",head->info);
}
}
这里没看仔细


2006-10-27 13:22
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
以下是引用菜鸟上路在2006-10-27 13:22:24的发言:
LZ的确实是正向的,没仔细看
void print_link_list(node *head)//不带头结点
{ if(head->next==NULL)
{
printf("%5d-->",head->info);
return;
}
else
{
print_link_list(head->next);
printf("%5d-->",head->info);
}
}
这里没看仔细

这说法是错误的,经过验证,仍然是反向的
以下是验证代码:
/* 带头接点*/

#include "Stdio.h"
#include "Conio.h"

typedef int type;
typedef struct Node
{
type info;
struct Node *next;
}Node;

void Create(Node *L,int num)
{ /*正向创建链表*/
int i;
Node *p,*q;
Node *s=L;
L=(Node *)malloc(sizeof(Node));
p=(Node *)malloc(sizeof(Node));
printf("Please input the element you want:");
scanf("%d",&p->info);
p->next=NULL;
L->next=s->next=p;
q=p;
for (i=1;i<num;i++)
{
p=(Node *)malloc(sizeof(Node));
printf("Please input the element you want:");
scanf("%d",&p->info);
p->next=NULL;
q->next=p;
q=p;
}
}

void print_link_list(Node *head,Node *root)
{

if(head->next==NULL)
{
printf("%5d-->",head->info);
return;
}
else
{
print_link_list(head->next,root);
if (head==root)
return;
printf("%5d-->",head->info);
}
}


int main(void)
{
Node La;
Create(&La,5);
print_link_list(&La,&La);
getch();
return 0;
}


2006-10-27 17:08
快速回复:[求助]求问版主:这个解答的详细内容
数据加载中...
 
   



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

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