首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
ascii
regex
random
frameworks
io
less
config
python3
php7
char
format
typescript
utf-8
python
foreach
include
shell
go
bash
nodejs
testing
dagger
heap
web
uml
fetch
cpython
jar
callback
future
bytecode
case
vba
main
erlang
command
install
window
object
tags
timestamp
usb
数组
replace
perl
string
integer
byte
dockerfile
rsa
runtime
tree
instance
version
hook
netty
md5
emoji
join
lua
hashcode
actionscrip
merge
copy
require
buffer
export
heatmap
match
subset
timezone
bit
get
split
default
web3
triggers
substring
import
当前位置:
开发笔记
>
编程语言
> 正文
建立链表和打印链表用的是递归法,可是只打印的出一个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语言
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
go
UVALive 8201 - BBP 公式计算圆周率
在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ...
[详细]
蜡笔小新 2024-11-21 18:32:57
uml
Singleton单例模式和DoubleChecked Locking双重检查锁定模式
问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ...
[详细]
蜡笔小新 2024-11-21 15:14:45
include
如何修正这段C++代码中的错误?
探讨了一个包含纯虚函数的C++代码片段,分析了其中的语法错误及逻辑问题,并提出了修正方案。 ...
[详细]
蜡笔小新 2024-11-22 19:05:57
include
hlg_oj_1116_选美大赛
hlg_oj_1116_选美大赛这题是最长子序列,然后再求出路径就可以了。开始写的比较乱,用数组什么的,后来用了指针就好办了。现在把代码贴 ...
[详细]
蜡笔小新 2024-11-22 09:20:30
go
解决iOS应用推送通知错误:未找到有效aps-environment权限
在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ...
[详细]
蜡笔小新 2024-11-21 19:26:31
include
递归实现表达式求和
本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ...
[详细]
蜡笔小新 2024-11-21 15:38:13
include
无向图中的最小环问题
本问题涉及在给定的无向图中寻找一个至少包含三个节点的环,该环上的节点不重复,并且环上所有边的长度之和最小。目标是找到并输出这个最小环的具体方案。 ...
[详细]
蜡笔小新 2024-11-21 15:01:34
heap
洛谷 P4009 汽车加油行驶问题 解析
探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ...
[详细]
蜡笔小新 2024-11-21 14:21:38
heap
深入理解C++构造函数
本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ...
[详细]
蜡笔小新 2024-11-21 10:41:14
go
阶段一:Hankson的趣味数学挑战——不使用辗转相除法求解特定条件下的正整数
Hanks博士是一位著名的生物技术专家,他的儿子Hankson对数学有着浓厚的兴趣。最近,Hankson遇到了一个有趣的数学问题,涉及求解特定条件下的正整数x,而不使用传统的辗转相除法。 ...
[详细]
蜡笔小新 2024-11-22 14:26:49
include
OpenCV中的霍夫圆检测技术解析
本文详细介绍了如何使用OpenCV库中的HoughCircles函数实现霍夫圆检测,并提供了具体的代码示例及参数解释。 ...
[详细]
蜡笔小新 2024-11-22 12:17:05
include
网络流24题——试题库问题
题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ...
[详细]
蜡笔小新 2024-11-22 11:33:55
io
Delphi XE2 之 FireMonkey 入门(19) - TFmxObject 的子类们(表)
td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ...
[详细]
蜡笔小新 2024-11-21 22:35:24
go
java写简易五子棋游戏。
importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ...
[详细]
蜡笔小新 2024-11-20 17:34:54
include
HDU 2028: 扩展最小公倍数问题
本题要求计算一组正整数的最小公倍数(LCM)。输入包括多组测试数据,每组数据首先给出一个正整数n,随后是n个正整数。 ...
[详细]
蜡笔小新 2024-11-20 15:52:47
卫凤莉_463
这个家伙很懒,什么也没留下!
Tags | 热门标签
ascii
regex
random
frameworks
io
less
config
python3
php7
char
format
typescript
utf-8
python
foreach
include
shell
go
bash
nodejs
testing
dagger
heap
web
uml
fetch
cpython
jar
callback
future
RankList | 热门文章
1
vs2010项目使用vs2013编译报错 无法打开包括文件:“winapifamily.h”
2
HDU 1012 u Calculate e(数学题)
3
android按钮按下不动怎么解决方法,[整理]Android按键点击处理的4种方法 | 勤奋的小青蛙...
4
Redis初识~Set命令
5
Python如何使用word文档插入图片和表格
6
【人工智能AI】三、NoSQL 实战《NoSQL 企业级基础入门与进阶实战》
7
天音挂机设置(诛仙3佛天音挂机设置)
8
CSS不透明度属性和图像不透明度说明
9
Blazor服务器方法调用和执行详细信息
10
《题崔中丞北斋》翻译 原文赏析诗人唐郑巢
11
为什么在React中传递给onClick的箭头函数内部的函数调用不起作用?
12
Java后端进阶网络编程(Netty线程模型)
13
fabric 使用SSH keyfile登录两台远程服务器
14
时会|外层_致景科技Java面经
15
支付宝_PHP支付宝手机网站支付功能
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有