首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
case
rsa
dagger
php8
filter
search
runtime
process
cookie
join
grid
config
install
command
python2
golang
php5
c语言
python
数组
subset
vba
future
export
bash
cmd
replace
hashcode
eval
default
usb
md5
regex
client
callback
bitmap
hook
string
perl
request
fetch
schema
metadata
char
byte
httprequest
uml
utf-8
go
copy
jar
input
plugins
function
solr
instance
post
cSharp
java
select
substring
timezone
match
triggers
audio
httpclient
heap
express
lua
dockerfile
python3
php7
tags
list
timestamp
frameworks
iostream
stream
jsp
当前位置:
开发笔记
>
编程语言
> 正文
建立链表和打印链表用的是递归法,可是只打印的出一个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语言
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
case
差分约束系统求解House Man跳跃问题的思路与方法
本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ...
[详细]
蜡笔小新 2023-12-14 11:49:51
python
向QTextEdit拖放文件的方法及实现步骤
本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ...
[详细]
蜡笔小新 2023-12-14 16:06:38
数组
P1651 塔 (动态规划) 的最大高度计算方法
本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ...
[详细]
蜡笔小新 2023-12-13 19:52:19
数组
使用多进程实现TCP服务端的优势和注意事项
本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ...
[详细]
蜡笔小新 2023-12-13 18:25:30
数组
二叉树层序创建问题的解决方法
本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ...
[详细]
蜡笔小新 2023-12-13 18:20:50
process
clone的fork与pthread_create创建线程有何不同
本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ...
[详细]
蜡笔小新 2023-12-12 20:00:06
default
开发笔记:实验7的文件读写操作
本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ...
[详细]
蜡笔小新 2023-12-12 17:48:18
default
最长上升子序列问题的变种解法
本文介绍了最长上升子序列问题的一个变种解法,通过记录拐点的位置,将问题拆分为左右两个LIS问题。详细讲解了算法的实现过程,并给出了相应的代码。 ...
[详细]
蜡笔小新 2023-12-12 17:41:45
default
李逍遥寻找仙药的迷阵之旅
本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ...
[详细]
蜡笔小新 2023-12-12 13:59:33
数组
JDK源码学习之HashTable(附带面试题)的学习笔记
本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ...
[详细]
蜡笔小新 2023-12-12 13:05:17
default
Java学习笔记之面向对象编程(OOP)
本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ...
[详细]
蜡笔小新 2023-12-13 08:44:30
default
3.223.28周学习总结中的贪心作业收获及困惑
本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ...
[详细]
蜡笔小新 2023-12-13 03:42:02
default
hdu 5439(找规律)的数列求和问题
本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ...
[详细]
蜡笔小新 2023-12-12 14:05:58
数组
java boolean 大小_java boolean 大小
先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ...
[详细]
蜡笔小新 2023-12-12 13:36:56
config
海马s5近光灯能否直接更换为H7?
本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ...
[详细]
蜡笔小新 2023-12-12 11:39:00
卫凤莉_463
这个家伙很懒,什么也没留下!
Tags | 热门标签
case
rsa
dagger
php8
filter
search
runtime
process
cookie
join
grid
config
install
command
python2
golang
php5
c语言
python
数组
subset
vba
future
export
bash
cmd
replace
hashcode
eval
default
RankList | 热门文章
1
python基础———Task03.列表和元组
2
不了解js touch 事件,为什么return false 后导致click无效
3
ps闪闪发光的字 教程+自我练习
4
android studio gjson,Android Studio插件GsonFormat
5
自己写了一个简单的MVC框架,想整合Spring,需要做什么呢?
6
linux perl占用大量资源_一片简文读懂JVM 与 Linux 的内存关系
7
《构建高可用Linux服务器(第4版)》已面市
8
Android NDK 多线程初步学习
9
打印机怎么设置高速打印?
10
获取Android手机app启动时间
11
PingingLab传世经典系列《CCNA完全配置宝典》-3.13 DHCP基本配置
12
json 挤压文字
13
Matlab论文插图绘制模板第65期—带等高线的曲面图(Surfc)
14
【橙子日记19】从零开始的毕业设计
15
首发18bit ISP:骁龙8将手机摄影的天花板拉至新高
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有