首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
eval
bytecode
metadata
php8
emoji
erlang
dagger
settings
lua
tree
php7
typescript
input
scala
nodejs
bitmap
triggers
flutter
js
hashcode
jar
md5
io
import
go
require
perl
java
schema
node.js
fetch
cmd
php
vbscript
bash
hashset
iostream
hashtable
timestamp
audio
testing
subset
list
javascript
match
post
default
keyword
callback
python3
integer
replace
get
hook
netty
ip
actionscrip
object
split
int
数组
command
web
window
filter
runtime
range
stream
controller
c语言
ascii
cPlusPlus
uri
merge
utf-8
version
timezone
include
heap
当前位置:
开发笔记
>
编程语言
> 正文
建立链表和打印链表用的是递归法,可是只打印的出一个0,求助!!
作者:卫凤莉_463 | 来源:互联网 | 2023-10-13 13:47
#include<iostream.h>structLnode{doubledata;Lnode*next;};voidShowList(
#include
struct Lnode
{
double data;
Lnode * next;
};
void ShowList(Lnode * list)
{
if(list)
{
cout<
data<
if(list->next)
ShowList(list->next);
}
}
void AddToEnd(Lnode * newnode , Lnode * head)
{
if(head==NULL)
head=newnode;
else
AddToEnd(newnode,head->next);
}
Lnode * GetNode()
{
Lnode * item;
item=new Lnode;
if(item)
{
item->next=NULL;
item->data=0.0;
}
else
cout<<"nothing allocated\n";
return item;
}
void main()
{
Lnode * head;
Lnode * temp;
temp=GetNode();
while(temp)
{
cout<<"data?";
cin>>temp->data;
if(temp->data>0)
AddToEnd(temp,head);
else
break;
temp=GetNode();
}
ShowList(head);
}
13 个解决方案
#1
void AddToEnd(Lnode * newnode , Lnode * head)
{
if(head==NULL)
head=newnode;
else
AddToEnd(newnode,head->next);
}
这个错了!看你代码蛮工整,我就不多说了。。。
#2
struct Lnode
{
double data;
Lnode * next;
};
这不对吧!
struct Lnode
{
double data;
struct Lnode * next;
};
#3
#include
#include"stdlib.h"
struct Lnode
{
double data;
Lnode * next;
};
void ShowList(Lnode * list)
{
Lnode*p=list;
if(p)
{
cout<
data<
if(list->next)
ShowList(p->next);
}
}
void AddToEnd(Lnode * newnode , Lnode * head)
{
if(head==NULL)
head=newnode;
else
AddToEnd(newnode,head->next);
}
void GetNode(Lnode*head)
{
int a;
Lnode * item,*p=head;
cout<<"data?";
cin>>a;
while(a>0){
item=new Lnode;
item->data=a;
p->next=item;
item->next=NULL;
p=item;
}
if(a>0.0) cout<<"nothing allocated\n";
}
void main()
{
Lnode * head;
Lnode * temp;
head=new Lnode;
GetNode(head);
/*while(temp)
{
cout<<"data?";
cin>>temp->data;
if(temp->data>0)
AddToEnd(temp,head);
else
break;
temp=GetNode();
}*/
ShowList(head->next);
}
//注意在程序执行完之前要释放所有开辟的内存
#4
zhdleo(叮东) 叮东你落后了:)在C++环境下这样是对的.TC中就是错的!!!
#5
对不起!!!
上面有一些错!!!
#include
#include"stdlib.h"
struct Lnode
{
double data;
Lnode * next;
};
void ShowList(Lnode * list)
{
Lnode*p=list;
if(p)
{
cout<
data<
if(list->next)
ShowList(p->next);
}
}
/*void AddToEnd(Lnode * newnode , Lnode * head)
{
if(head==NULL)
head=newnode;
else
AddToEnd(newnode,head->next);
}*/
void GetNode(Lnode*head)
{
int a;
Lnode * item,*p=head;
cout<<"data?";
cin>>a;
while(a>0){
item=new Lnode;
item->data=a;
p->next=item;
item->next=NULL;
p=item;
cout<<"data?";
cin>>a;
}
if(a>0.0) cout<<"nothing allocated\n";
}
void main()
{
Lnode * head,*q,*qq;
Lnode * temp;
head=new Lnode;
GetNode(head);
/*while(temp)
{
cout<<"data?";
cin>>temp->data;
if(temp->data>0)
AddToEnd(temp,head);
else
break;
temp=GetNode();
}*/
ShowList(head->next);
//释放内存
q=head;
while(q){
qq=q->next;
delete q;
q=qq;
}
}
#6
不好意思,是我看错了,呵呵
#7
不过你的Lnode *head不赋初值,如果head指向随机地址不是NULL...
#8
对hssfox()的几点建议:
1.不要滥用递归,特别是当你还没有深刻地理解它的思想时。递归虽然能增强程序的可读性,但它的执行效率低。
2.以指针作为参数时,其实质也是传值方式。调用该函数以后指针值本身不会改变,函数只能对该指针所指地址内的数据进行修改。
3.如果你学过C++,那么你应该强迫自己使用它。C++并不是在C语言中加入cout和cin那么简单。
4.你代码书写的格式是值得欣赏的。
愿意共同进步!大家都是这么一步一步走过来的。
#9
to Keanu_Rocky(蠢笨如牛)
说得好呀,你一说我才想起曾经看过的书,我真是没记性,我才是蠢笨如牛呀!
#10
如果这样改,似乎就可以了吧?
main(){
......
head=new Lnode;
head->next=NULL;
......
AddToEnd(newnode,head)
......
}
void AddToEnd(Lnode * newnode , Lnode * head)
{
if(!head->next)
head->next=newnode;
else
AddToEnd(newnode,head->next);
}
#11
to liao2001(知之为知之,不知为不知。。。)
其实每次写程序的时候我都会发觉自己不够聪明,呵呵,可能大家都一样吧。
按照你上面说的那么改,虽然可以出结果,但是我觉得仍有不妥,程序应该是给程序员读的,而不是给机器“读”的。写程序的时候始终要把可读性放在首位,上面的程序可读性不强。建议如下:
void AddToEnd(Lnode *&head, const Lnode *&newnode)
{
...
}
#12
void destroy(Lnode *head){
Lnode *q=head,*qq
while(q){
qq=q->next;
delete q;
q=qq;
}
}
void main()
{
Lnode * head;
Lnode * temp;
head=new Lnode;
GetNode(head);
/*while(temp)
{
cout<<"data?";
cin>>temp->data;
if(temp->data>0)
AddToEnd(temp,head);
else
break;
temp=GetNode();
}*/
ShowList(head->next);
//释放内存
destroy(head);
}
#13
丢了分号,要加分号
include
ios
struct
list
get
main
ci
int
c语言
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
java
字符串中特定字符的移除方法
本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ...
[详细]
蜡笔小新 2024-12-22 00:08:06
java
使用栈实现字符串中括号匹配的C++程序
本文介绍如何利用栈数据结构在C++中判断字符串中的括号是否匹配。通过顺序栈和链栈两种方式实现,并详细解释了算法的核心思想和具体实现步骤。 ...
[详细]
蜡笔小新 2024-12-22 11:44:35
go
JSOI2010 蔬菜庆典:树结构中的无限大权值问题
本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ...
[详细]
蜡笔小新 2024-12-22 18:57:48
go
紫荆花之恋:动态树上的小精灵友谊问题
本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ...
[详细]
蜡笔小新 2024-12-22 14:36:54
go
使用预处理器开关确定类的版本
本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ...
[详细]
蜡笔小新 2024-12-22 12:03:31
require
云函数与数据库API实现增删查改的对比
本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ...
[详细]
蜡笔小新 2024-12-22 00:56:21
java
深入解析SpringMVC核心组件:DispatcherServlet的工作原理
本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ...
[详细]
蜡笔小新 2024-12-21 18:50:52
java
矩阵芯片移动游戏
题目描述:给定一个N*M的网格,初始时网格中有k个芯片,每个芯片的位置已知。玩家可以在每一步操作中将所有芯片沿同一方向移动一格。如果芯片到达边界,则保持不动。目标是通过一系列操作,使每个芯片依次访问指定的目标位置。 ...
[详细]
蜡笔小新 2024-12-22 17:38:34
import
使用Python批量处理图片尺寸调整
本文介绍了如何利用Python进行批量图片尺寸调整,包括放大和等比例缩放。文中提供了详细的代码示例,并解释了每个步骤的具体实现方法。 ...
[详细]
蜡笔小新 2024-12-22 17:13:05
java
2018-2019学年第六周《Java数据结构与算法》学习总结
本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ...
[详细]
蜡笔小新 2024-12-22 16:43:19
java
Java 实现二维极点算法
本文介绍了一种使用 Java 编程语言实现的二维极点算法。该算法用于从一组二维坐标中筛选出极点,适用于需要处理几何图形和空间数据的应用场景。文章不仅详细解释了算法的工作原理,还提供了完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-22 15:52:24
require
Export the Hosted Zone ID Attribute for AWS RDS Cluster Resource
This request pertains to exporting the hosted_zone_id attribute associated with the aws_rds_cluster resource in Terraform configurations. The absence of this attribute can lead to issues when integrating DNS records with Route 53. ...
[详细]
蜡笔小新 2024-12-22 14:20:30
require
使用Fetch进行HTTP请求的基本示例
本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ...
[详细]
蜡笔小新 2024-12-22 12:55:37
java
Java - 在ArrayList中插入多个不同数组的方法
本文探讨了在Java中如何正确地将多个不同的数组插入到ArrayList中,避免所有数组在插入后变得相同的问题。我们将分析代码中的问题,并提供解决方案。 ...
[详细]
蜡笔小新 2024-12-22 11:35:44
import
黑马头条项目:Vue 文章详情模块与交互功能实现
本文详细介绍了如何在黑马头条项目中配置文章详情模块的路由、获取和展示文章详情数据,以及实现关注、点赞、不喜欢和评论功能。通过这些步骤,您可以全面了解如何开发一个完整的前端文章详情页面。 ...
[详细]
蜡笔小新 2024-12-21 19:23:01
卫凤莉_463
这个家伙很懒,什么也没留下!
Tags | 热门标签
eval
bytecode
metadata
php8
emoji
erlang
dagger
settings
lua
tree
php7
typescript
input
scala
nodejs
bitmap
triggers
flutter
js
hashcode
jar
md5
io
import
go
require
perl
java
schema
node.js
RankList | 热门文章
1
ngScreeningangular 挑选器
2
java数据库中文乱码解决方法[java基础]
3
Aliyun Linux 如何安装 php7.3 tengine2.3.2 mysql8.0 redis5
4
django异常日志_Sentry前端异常追踪平台集成钉钉消息提醒
5
PNY推出LX2030与LX3030系列Chia挖矿专用SSD
6
echarts图表通过设置html的zoom属性缩放后,鼠标点击或者是悬浮都会发生偏移
7
postmain报400_Postman测试@RequestBody发送请求时报400错误
8
java – Spring Boot 2多个数据源初始化模式
9
android中使用wakelock
10
没有安装Python的电脑运行Python代码教程
11
Postman 调试 WebService
12
JetBrains 开发效率真的比 VS Code 高吗?
13
Delphi多线程编程之同步读写全局数据
14
如何正确设置扬声器延时
15
js教程(3) 字符串、数字、日期等内置函数, 数组
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有