指针的问题????????UP有分.

iceadf 2003-08-26 09:57:25
再链表插入的函数中为什么头节点是指针的指针类型.好像就用指针就可以呀.
大家能不能解释一下.明白后马上结帖.再止谢过.
...全文
15 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
FishCrazy 2003-08-27
  • 打赏
  • 举报
回复
UP ;)
FishCrazy 2003-08-27
  • 打赏
  • 举报
回复
我看你关键是要理解

传值还有传地址两者的定义以及它们之间的差别
wangmin_yjitx 2003-08-27
  • 打赏
  • 举报
回复
up
challengecxi 2003-08-27
  • 打赏
  • 举报
回复
对于数据结构一些问题,不妨到下面网址下载一个演示软件,挺有用的。
http://www.cnitexam.com/down/index.php?o=display;id=25
challengecxi 2003-08-27
  • 打赏
  • 举报
回复
*p改变以后,p的值是不变的(p是一个地址值,*p是p指针所指向的类型值)。**p是指向指针类型的指针,*p改变以后,**p的地址值不变,但其指向的类型值改变。
其实,函数调用可以用指针的引用,这样就能改变形参的值,对于你的程序第一行若改为“seqtree * & root”,函数里的语句改变root后,推出函数以后root的值就会改变,下面这个简单的例子希望能帮你理解

#include<iostream>

using namespace std;

struct node
{
int d;
node * next;
};

void insert(node * & r)
{
int ins;
cin>>ins;
node * ptr= new node;
ptr->next=0;
ptr->d=ins;
r->next=ptr;
}

int main()
{
node *p=new node;
p->d=3;
p->next=0;
insert(p);
while(p)
{
cout<<p->d<<endl;
p=p->next;
}
return 0;
}

这个函数当输入完ins以后输出应为
3
ins


wbh0360 2003-08-27
  • 打赏
  • 举报
回复
可以啊,不过不知道你程序怎么写的?
boodweb 2003-08-26
  • 打赏
  • 举报
回复
哦,那这样的话应该是seqtree **root才对阿,否则编译的时候怎么会出问题阿
用指针的指针应该是为了能够改变root吧(用*root=ins),否则root不可能改变

btw:程序里的root=ins是不是要写成*root=ins呢
iceadf 2003-08-26
  • 打赏
  • 举报
回复
to challengecxi(challenge):
int **p, 按你的意思,如果*p的值改变的话,那*p,p,**p.这三个值将如何改变呀。/
iceadf 2003-08-26
  • 打赏
  • 举报
回复
void insert(seqtree *root, int val)
{
seqtree *ins,*p=root;
ins=new seqtree;
ins->value=val;
ins->left=ins->right=NULL;
if(root==NULL)
{
root=ins;
return;
}
for(;;)
{
if(p->value<ins->value)
{
if(p->left==NULL)
{
p->left=ins;
break;
}
else p=p->left;
}
else
{
if(p->right==NULL)
{
p->right=ins;
break;
}
else p=p->right;
}
}
}
比如说上面这个排序二叉树的插入函数,其形参就一定要是指针的指针,如果换成是指针就编译出问题。
challengecxi 2003-08-26
  • 打赏
  • 举报
回复
我在做数据结构上机作业时就在这个问题上纠缠了好久TT
challengecxi 2003-08-26
  • 打赏
  • 举报
回复
指向指针(假设为ptr1)的指针类型(假设为ptr2)改变后,ptr1的值才会改变,你自己试试就知道了。
boodweb 2003-08-26
  • 打赏
  • 举报
回复
没看懂啊,能不能举个例子
链表还有这么一说吗?
SoftWare1999 2003-08-26
  • 打赏
  • 举报
回复
在不含头节点的链表中,返回第一个指针类型的地址

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧