【数据结构】【顺序表】SqList *&L是什么意思

voidCreatList(SqList*&L,ElemTypea[],intn)我是到后面两个定义的是数组和数组长度那么SqList*&L是什么意思,为什么放在Elem... void CreatList(SqList *&L , ElemType a[] , int n)

我是到 后面两个定义的是数组和数组长度

那么
SqList *&L是什么意思,
为什么放在ElemType a[] , int n前面定义?
void CreatList(SqList *&L , ElemType a[] , int n)

我是到 后面两个定义的是数组和数组长度

那么
SqList *&L是什么意思,
为什么放在ElemType a[] , int n前面定义?

L是什么内涵
展开
 我来答
hubingdi1984
2012-10-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:9437
采纳率:86%
帮助的人:9132万
展开全部
你好,楼主是否学过引用?
比如两个变量交换。
swap(int x, int y)
{
int temp =x;
x = y;
y = temp;

}
swapByRef(int &x,int &y)
{
int temp =x;
x = y;
y = temp;

}

void main()
{

int x = 1,y = 2;
swap(x,y);
swapByRef(x,y);

}
你看看上面第二种才会真正交换x,y的值。这就是引用的作用。
书归正传,void CreatList(SqList *&L , ElemType a[] , int n)为什么不是
void CreatList(SqList *L , ElemType a[] , int n)?
如果是后一种情况,相当于什么意思呢?比如我现在要创建一个头指针是Head的链表。语句是这样的:
SqList * Head = NULL;
int a[10] = {......};

CreatList(Head, a,10);
本来我希望执行完后,Head应该是包含10个节点的链表的头指针,结果,你会发现,Head = NULL。
因为这里在CreateList传参的时候,实际意思是让L 指向Head所指的地址。

此时的L跟Head并不是同一个指针,而是指向同一个地址的不同指针。所以你对L的操作并没有发生到Head身上,就像前面的交换函数一样。
而SqList *&L不同,它的意思是,L是对Head的引用,后面对L的操作,就相当于对Head的操作,所以这种情况下对L的更改才会发生到Head上。
如果对这块还有疑问,可以追问。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
Nix张
推荐于2017-09-01 · TA获得超过148个赞
知道答主
回答量:66
采纳率:100%
帮助的人:52.3万
展开全部
SqList *&L是将要建立的顺序表指针给 &L
在调用CreatList(SqList *&L , ElemType a[] , int n)后
我们只要使用SqList *&L就可以使用顺序表了
追问
顺序表指针是指第一个表元素的地址吗?
为什么&L可以作为指针变量呢,&L不是一个地址吗,是固定的值吗?
追答
一般来说void CreatList(SqList &L , ElemType a[] , int n)或者
void CreatList(SqList* L , ElemType a[] , int n)
这样L作为一个指向链表头的指针,L指向顺序表第一个元素

而CreatList(SqList *&L , ElemType a[] , int n)则变成&L指向链表头,&L是个地址,其指由程序分配
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友37bdf14
2020-06-23
知道答主
回答量:4
采纳率:0%
帮助的人:2457
展开全部
简单来说,带上&是对线性表本身操作,只带*是相当于一个复制品,最终结果不会影响到线性表本身,所以插入删除都要带&,而判断之类的不需要加&
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-25
展开全部
SqList *&L就是顺序表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朴容主吧外交枔
2018-11-23
知道答主
回答量:1
采纳率:0%
帮助的人:790
展开全部
你好
*L表示指针
&表示应用型(地址可以改变)
Sqlist*&L表示定义一个地址可以被改变的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式