C语言静态链表问题
这个是静态链表插入操作的典型步骤,即先从备用链表中取出一个节点,对该节点的数据域赋值后通过修改数组的游标来完成插入操作,这里的av表示静态链表中的备用链表的第一个节点并在...
这个是静态链表插入操作的典型步骤,即先从备用链表中取出一个节点,对该节点的数据域赋值后通过修改数组的游标来完成插入操作,这里的av表示静态链表中的备用链表的第一个节点并在初始化函数中将其初始化为1表示备用链表节点可用,我不明白的是,我们主观上定义av是指向静态链表中的备用链表的第一个节点,而实际上av指向了内存的哪个位置应该是程序随机分配的吧,那为什么在代码中通过k=(*L).av就可以获得备用链表的第一个节点了呢?
展开
1个回答
展开全部
“这里的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第二个格子里
这么说你明白了吧?并没有内存的问题 这不是动态链表 一开始就划定了一段内存空间存放这个数组。
将其初始化为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的定义看看
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |