永发信息网

关于链表C++

答案:2  悬赏:20  手机版
解决时间 2021-08-01 02:31

#include<iostream>
using namespace std;
struct node
{
char data;
node *next;
};
node *create();
void show(node *Head);
int main()
{
node *Head;
cout<<"创建一个链表,请输入数据并以'#'结束:"<<endl;
Head=create();
cout<<"您刚才创建的链表为:"<<endl;
show(Head);
system("pause");
return 0;
}
node *create()
{
node *Head=NULL,*End=Head,*temp;
char tempp;
do
{
cin>>tempp;
if(tempp!='#')
{
temp=new node;
temp->data=tempp;
temp->next=NULL;
if(Head==NULL)Head=temp;
else End->next=temp;
End=temp;
}
}while(tempp!='#');
return Head;
}
void show(node *Head)
{
node *temp;
while(Head!=NULL)
{
cout<<Head->data<<" ";
Head=Head->next;
}
}
为什么在函数*create()中要在前面加上' * '?

在执行create后链表变量Head不是销毁了吗?怎么还可以输出链表?是不是在内存上有这个数据,我们把链表头拿到手就可以了?

最佳答案

问题1:为什么在函数*create()中要在前面加上' * '?


回答:返回一个指针类型; node *结构体指针类型


问题2:


回答:因为是Head=create(); 在调用该函数时编译器会将当前地址赋给Head之后,create才销毁不然怎么返回直呢


是不是在内存上有这个数据,我们把链表头拿到手就可以了?


回答:因为你建立的new 内存空间的内容己赋值了。经管create销毁并不代表内存中的值也销毁。比如你谁边定义一个变量输出也能输出他的值一样。


全部回答
node *create();表示返回值是一个node * 类型的 那么也就好理解为什么Head有值了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
坐车为什么晕
人际关系名人名言,面试人际关系题中常用的名
飞信传文件要钱的不?
恩施市恩施英伦美家地址在哪,我要去那里
昆明哪里有这双耐克的鞋子
桃李苑这个地址在什么地方,我要处理点事
吃什么对肠胃好/不好?想胖该怎么做!(本人
3G无线上网卡哪种类型的最好?
怎么在WORD中一次替换所用英文字母?
新晃侗族自治县怀化状元甲在哪里啊,我有事要
八一建军节快乐短信,有关快乐的句子
为什么我用手机登QQ空间有时进不去呢?
当人失落、无奈时最好的良药是?
动漫史上最纠结的情侣..
那个网站的学习资料最好啊!~
推荐资讯
哈尔滨如何办理药师证
寻高手 帮我把炫舞的游戏录像转换格式
新版熊熊通告问题
hypershot在VISTA安装后无法打开
张湾区十堰纯净水设备这个地址在什么地方,我
鹤城区怀化瑞倪维儿俊俊美容美发店哪位知道具
有德流仁讴歌送喜,增荣益誉眉寿保年,,什么
09年11月18号科比拿下多少分
南岗区哈尔滨Famous Banquet虾秘我想知道这个
人们为何都有点自私了呢
宁波哪里拍艺术照比较好?关键是性价比
富贵门第十集30:10的英文插曲很好听,是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?