| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 764 人关注过本帖
标题:为什么这个程序不能显示输出呢?
只看楼主 加入收藏
nalism
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-2-6
收藏
 问题点数:0 回复次数:6 
为什么这个程序不能显示输出呢?

这是一个单链表就地倒序的程序,输入字符创建单链表,后输出倒序后的单链表。可是为什么没有输出呢?

#include <iostream>
using namespace std;

struct Node//建立链表结点
{
Node(char e,Node* next)//构造函数
{
element=e;
link=next;
}
char element;//字符元素
Node *link;//指向后一个节点的指针
};

void print(Node*head)//输出单链表
{
while(head!=NULL)
{cout<<head->element;
cout<<endl;
head=head->link;
}
}


void invert(Node*&head)//单链表倒序
{
Node*p,*q,*r;
p=head;
q=p->link;
while(q!=NULL)//不断地将后一个节点的指针指向前面一个节点
{
r=q->link;
q->link=p;
p=q;
q=r;
}
head->link=NULL;
head=p;
}

void main()
{ Node *List=NULL;//声名一个指向Node型数据的指针作为链表的头指针
cout<<"请输入字符,以回车结束输入:\n";
char c;
Node *p=NULL;
Node *r=NULL;

while((c=getchar())!='\n');//判断输入的是否为回车键,是的话则结束输入
{ p=new Node(c,NULL);
if(List!=NULL)
r->link=p;
else List=p;
r=p;
}


cout<<"输入的字符为:"<<endl;

void print(Node *List);//调用函数输出链表

void invert(Node *&List);//调用函数对链表进行倒链处理

cout<<"倒链为:"<<endl;

void print(Node *List); //输出倒链

}

搜索更多相关主题的帖子: Node head element 单链 
2006-02-10 15:04
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
楼主的程序,我真的看不懂啊。
1。struct怎么还有构造函数了?
2。下面这段代码里,print和invert是函数调用还是声明啊?

void print(Node *List);//调用函数输出链表

void invert(Node *&List);//调用函数对链表进行倒链处理

void print(Node *List); //输出倒链

3。Node *&List 这个是怎么回事啊?


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-10 16:33
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

struct可以象class那样使用,不过成员默认为public

Node *&List 指针的按引用传递,因为要修改List在函数中.

问题在2里.

我想问

[CODE]void fun(int);

int main(){
void fun(int a);
}[/CODE]

也能通过编译.这是什么意思?
看起来奇怪


2006-02-10 17:12
DarkHero
Rank: 1
等 级:新手上路
威 望:2
帖 子:191
专家分:0
注 册:2006-1-14
收藏
得分:0 

规定:
可以多次声明,但只能一次定义


for( ; me.alive() ; ) { 淡泊名利,志存高远 } //Forever
2006-02-10 17:43
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
谢了,我还以为不能在函数中声明

2006-02-10 17:55
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
内存泄露~

2006-02-10 19:42
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
还有
while((c=getchar())!='\n');//判断输入的是否为回车键,是的话则结束输入
这句后面多个";"号吧?

这个问题解决了么?

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-13 09:45
快速回复:为什么这个程序不能显示输出呢?
数据加载中...
 
   



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

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