乐教考试网官方网站:一个c++程序 大家帮忙弄一下

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 17:28:24
我这没装c 希望大家能试一下这个程序什么结果 谢谢

#include<iostream.h>
class node{
public:
node(char c,node *q){data=c;next=q;};
char data;
node*next;
};
void main(void){
char n;
node*p;
node*q=0;
while(n!='z'){
cin>>n;
p=new node(n,q);
q=p;
}
for(;p;p=->next)
cout<<p->data<<"-->";
cout<<"^"<<endl;
}

运行后输入:WUVXYZ

还有我想问一下 定义node类中 node*next 是什么意思? 有什么作用呢?谢谢

1、
wuvxyz
z-->y-->x-->v-->u-->w-->^

2、
node *next;或者node* next;是说让这个结点指向下一个与自己一样的结点。上面的代码是这样的:
输入w,程序在内存中建立一个node空间(假设为node1),data存w值, next指向0(没有值);此时q指针指向该node空间。

输入x,程序在内存中又建立一个node空间(假设为node2),data存x值,next指向node1;此时q指向node2空间。

……
输入z,程序在内存中又建立一个node空间(假设为node6),data存z值,next指向node5;此时q指向node6空间。
然后就跳出循环。此时你建立的node就像一个通过next指针连接的长链,而p和q是牵着链头的指针。

输出时,就相当于从链头开始,一个一个的摘下node。

wuvxyz
z-->y-->x-->v-->u-->w-->^
Press any key to continue

这个就是你的程序的结果,而你问的后一个问题,上面给的答案都不错啊,可以参考

指向下一个变量的指针

node *next;或者node* next;是说让这个结点指向下一个与自己一样的结点,就像你手中拿了一个别人的照片,按照照片就可以找到你所要找的,当然或许我这个比喻不恰当,因为找到的是人,而不是其他的!

"->"是指针