数据结构关于形参列表的一个问题?

你个小乌孙 2020-07-07 10:20:16
为什么图中这个插入函数只传入一个指针型变量能成功实现对L表的插入,难道不应该是要加一个引用才可以的吗?我之前在李春葆那本数据结构上有个发现他的形参列表都是都是指针变量的引用*&,如果把引用去了就不能修改L了。这两个地方有什么区别吗?好迷啊

typedef struct LNode {
ElemType data;
struct LNode* Next;
}LNode,*Linklist;

void Insert_LNode(Linklist L, int i, int x) {
Linklist p, q;
p = L->Next;
int j = 1;
while (p != NULL && j < i-1) {
p = p->Next;
j++;
}
if (p == NULL)
cout << "不存在" << endl;
else {
q = (Linklist)malloc(sizeof(LNode));
q->data = x;
q->Next = p->Next;
p->Next = q;
}
}

...全文
8354 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦想减肥的dw 2023-01-12
  • 打赏
  • 举报
回复 1

你去看 Linklist L 的定义结构, 他在定义时 把 LNode * L 使用了别名 : Linklist l ,所以其本质就是引用类型

真相重于对错 2020-07-27
  • 打赏
  • 举报
回复
void Insert_LNode(Linklist L, int i, int x) { Linklist p, q; =============== 这里不用加引用,因为这段程序修改的是它指向的内容,而不是它自身,只有修改L自身的地址,才须要二级指针,或者是指向指针的引用。

33,027

社区成员

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

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