C语言静态链表问题

这个是静态链表插入操作的典型步骤,即先从备用链表中取出一个节点,对该节点的数据域赋值后通过修改数组的游标来完成插入操作,这里的av表示静态链表中的备用链表的第一个节点并在... 这个是静态链表插入操作的典型步骤,即先从备用链表中取出一个节点,对该节点的数据域赋值后通过修改数组的游标来完成插入操作,这里的av表示静态链表中的备用链表的第一个节点并在初始化函数中将其初始化为1表示备用链表节点可用,我不明白的是,我们主观上定义av是指向静态链表中的备用链表的第一个节点,而实际上av指向了内存的哪个位置应该是程序随机分配的吧,那为什么在代码中通过k=(*L).av就可以获得备用链表的第一个节点了呢? 展开
 我来答
百度网友53d27cb
2014-05-03 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:115万
展开全部
“这里的av表示静态链表中的备用链表的第一个节点并在初始化函数中将其初始化为1表示备用链表节点可用”
将其初始化为1即表示它是第一个节点。你看k 和 av 都是int型的,是一个数字。
它们指向一个数据是通过指定数据在数组中的编号。

具体说明如下:
这个静态链表数据成员是 数据域+cur域 , cur也是一个int型数字。
然后讲这些数据成员放到数组里 。
下面是例子
struct NAME //数据成员
{
char name[20];
int cur;
}List[10]; // 包含十个NAME数据成员的数组

List[1]={"Yang",2}; //即是List第二个格子里放了 {"Yang",2} 而这个 2就是指 Yang的下一个节点摆在List第二个格子里

这么说你明白了吧?并没有内存的问题 这不是动态链表 一开始就划定了一段内存空间存放这个数组。
更多追问追答
追问
你的具体说明关于静态链表的数据结构的部分我明白,但关于游标av的说明我还是不太明白,初始化av=1,但由k=(*L).av得到的值是8(即备用链表第一个节点在数组L中的下标值),这又是怎么回事呢?(加hi聊吧)
追答
你贴出关于av的定义看看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式