C语言初学.链表问题求教
1个回答
展开全部
既然你问到了链表,那么,我相信 你绝对已经知道什么是数组了,想学会链表,那么先回忆下数组是怎么存储数据的。
我们这么假设,现在有1-10个相挨着的房间,其中一个房间里面有宝箱,如果我跟你说第三个房间有宝箱,那么你可以直接去标号为3的房间里去找宝箱,宝箱就找到了。这就是数组的存数据的方式。
而链表,则不是这样,同样有10个房间,但是房间却不是挨在一块的,散乱的,但通常我们知道第一个房间在哪,如果我跟你说宝箱在第三个房间,你是没法直接知道第三房间在哪,因为它们不是挨在一块儿的。但是每个房间之间都有线索,让你可以去找其他房间。比如要找第三个房间,你要先进入第一个房间,第一个房间会有那么一张纸条,说:第二个房间的门牌号是XX,那么你去门牌号为XX的房间,这就是第二个房间,同样,里面有一张纸条,上面写着:第三个房间的门牌号是YY,接着,你就自然而然得去门牌号为YY的房间,而这就是第三个房间,里面有宝箱。(房间就是内存空间,纸条就是next指针,门牌号就是next指针上的地址值,宝箱就是你遍历的数据)
因此可以很发现,链表相对于数组来说,他的存储不是线性的,也就是说存储空间都不连续,可能一个在上海,而另一个在北京(开玩笑的)。而链表中依靠next这个指针来作为寻找下个地址的线索。也就是说,对于链表,一定存在那么两个元素。
一:头结点,让我知道从哪开始找
二:next指针,让我知道下个存储空间在哪
基本的操作和玩手链差不多。不知道你具体要问什么,我先大概给你回答,具体的你再问
我们这么假设,现在有1-10个相挨着的房间,其中一个房间里面有宝箱,如果我跟你说第三个房间有宝箱,那么你可以直接去标号为3的房间里去找宝箱,宝箱就找到了。这就是数组的存数据的方式。
而链表,则不是这样,同样有10个房间,但是房间却不是挨在一块的,散乱的,但通常我们知道第一个房间在哪,如果我跟你说宝箱在第三个房间,你是没法直接知道第三房间在哪,因为它们不是挨在一块儿的。但是每个房间之间都有线索,让你可以去找其他房间。比如要找第三个房间,你要先进入第一个房间,第一个房间会有那么一张纸条,说:第二个房间的门牌号是XX,那么你去门牌号为XX的房间,这就是第二个房间,同样,里面有一张纸条,上面写着:第三个房间的门牌号是YY,接着,你就自然而然得去门牌号为YY的房间,而这就是第三个房间,里面有宝箱。(房间就是内存空间,纸条就是next指针,门牌号就是next指针上的地址值,宝箱就是你遍历的数据)
因此可以很发现,链表相对于数组来说,他的存储不是线性的,也就是说存储空间都不连续,可能一个在上海,而另一个在北京(开玩笑的)。而链表中依靠next这个指针来作为寻找下个地址的线索。也就是说,对于链表,一定存在那么两个元素。
一:头结点,让我知道从哪开始找
二:next指针,让我知道下个存储空间在哪
基本的操作和玩手链差不多。不知道你具体要问什么,我先大概给你回答,具体的你再问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询