| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2518 人关注过本帖
标题:什么是静态链表?谁能帮我解释一下?
只看楼主 加入收藏
guopeng2324
Rank: 2
等 级:论坛游民
帖 子:11
专家分:15
注 册:2009-6-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
什么是静态链表?谁能帮我解释一下?
我在看书的时候,书中提到了静态链表这个概念。但是书中只说了几句,没说的很清楚。我现在就只知道它是用数组来模拟链表。
数组是怎么来模拟链表的?静态链表到底是什么东西?它有什么用处?怎么用?
希望各位高手能为我解答。我先谢谢各位了。
搜索更多相关主题的帖子: 链表 静态 解释 
2009-07-16 12:21
my_sting
Rank: 1
等 级:新手上路
帖 子:57
专家分:4
注 册:2009-6-24
收藏
得分:4 
链表分为两种:动态和静态

动态的结合相关函数能动态开辟内存,特点就是不会浪费内存单元;

静态链表则没有这个优点。

链表不用像数组那样,非得要在内存中连续存放。
假设链表第一个元素的地址是6000,那么第二个元素的地址不用是6001,可以是12012,也可以是其他值。

那么第一个元素如何找到第二个元素呢?

当知道第一个元素后,如果知道了第二个元素的地址,那么便可以找到第二个元素。
所以链表的元素里至少有两个数据:该链表元素本身的值;以及指向下一个元素地址的指针。
只是最后一个元素指向的是 空地址 NULL 。


什么数据类型里面能包含两种以上的数据?

答案就是 结构体

struct people
{
char name[30];
char sex;
int age;
struct people *next;
};

struct people maozedong,jiangjieshi;


希望你能明白
2009-07-16 16:04
二C在线
Rank: 1
来 自:山东济南
等 级:新手上路
帖 子:8
专家分:9
注 册:2009-5-19
收藏
得分:4 
所谓动态链表就是在程序执行中动态添加结点的链表。一般用Molloc()实现。

而如果一个链表中结点的数目每次运行都是一样的,就是静态的。。。
2009-07-16 17:21
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:4 
回复 楼主 guopeng2324
通常是一个二维数组,第一行用来存储数据,第二行作为指示器(随便起的名字,功能上类似于指针)使用。
例如有一个变量int a[2][5],如果值如下所示,且链表的第一个元素为a[0][3]
10 12 29 32 34
4  2  -1  0  1

那么这个链表的第一个元素就是a[0][3],因为a[1][3]=0,所以第二个元素是a[0][0],因为a[1][0]=4,所以第三个元素是a[0][4],如此类推。

身体是玩命的本钱
2009-07-17 18:45
快速回复:什么是静态链表?谁能帮我解释一下?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053407 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved