数据结构 单链表的初始化为什么要定义一个双重指针啊,定义成简单指针不行吗

typedefstructNode{DataTypedata;structNode*next;}ListNode,*LinkList;void(LinkList*head... typedef struct Node
{
DataType data;
struct Node *next;
}ListNode,*LinkList;

void(LinkList *head) \\为什么要定义二重指针啊? 有这个必须性吗?我怎么觉得写成void (LinkList head)也是可以的啊 有没有懂的 能说明详细原因的?
展开
 我来答
TragedyHome
2012-07-31 · TA获得超过2409个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:220万
展开全部
楼主查阅的那些资料是对的。
链表名是一个地址常量,你可以把它看成是一个常量指针,即不能改变它的指向的指针,所以你只能改变链表中除头结点外的指针,而不能改动整个链表。LinkList *head定义二级指针增强了函数的移植能力。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
zhanghuaen
2012-07-30 · TA获得超过4017个赞
知道小有建树答主
回答量:836
采纳率:88%
帮助的人:816万
展开全部
因为有时你需要改变指针本身的值。例如,删除第一个节点的函数,你需要将head本身也改变掉:
void DeleteFirst( LinkList *head )
{
LinkList old_head = (*head);
*head = (*head)->next;
delete old_head;
}
如果不想使用二级指针,也可以使用引用:
void DeleteFirst( LinkList &head )
{
LinkList old_head = head;
head = head->next;
delete old_head;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
276506968
2012-07-30 · TA获得超过777个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:81.1万
展开全部
我当初就这个问题和我舍友讨论了1天,在进行先序、中序或者后序遍历的时候,当利用递归的时候,没有二级指针的话,是没办法操作到精确的内容的,会出错。
具体的现在也想不起来例子和代码。但是往我这个方向去改一下遍历的程序,就可以明白了。明天要考车试,先睡觉了。
program团队为您服务!希望能帮到您!改日再叙。
追问
我又查了些资料,很多网友说定义二重指针目的是为了当指针作为函数参数时候,在链表调用时候能改变头指针的地址,从而能调动整个链表,用一级指针的话只能改变一个结点的值~
追答
这么一说我也懂了!!谢谢!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖糖寳寳
2015-09-10 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3949万
展开全部
在子函数中传递指针时,子函数的形参要用指针的地址,就是双重指针,也叫二级指针。
typedef DataType int
typedef struct Node{
DataType data;
struct Node *next;
}LNode,*PNode,*LinkList;
int Initial(LinkList *h){ //参数为头结点指针的地址,也就是指针的指针*h=(LinkList)malloc(sizeof(LNode));
printf("初始化链表错误\n");
return 0;
}
*h->next =NULL;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xmhpearl
2012-07-30
知道答主
回答量:12
采纳率:0%
帮助的人:4.3万
展开全部
指针的指针就是本身,如果是void (LinkList head)那么传进去的参数就是指针型,但是如果是void(LinkList *head) 传进的参数就不会是指针型。
追问
我是想问是否有使用二重指针的必要性?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式