首页 > 代码库 > 静态单链表和动态单链表的区别

静态单链表和动态单链表的区别

链表中结点的分配和回收是由系统提供的标准函数malloc和free动态实现的,称之为动态链表。
如果程序支持指针,则可按照我们的一般形式实现链表, 需要时分配,不需要时回收即可.
动态链表的空间是可以动态扩展的。
typedef struct  node{  
 EleType data;  
 struct node * pNext;  
}Node;

有些高级语言中没有“指针”数据类型,只能用数组来模拟线性链表的结构,
数组元素中的指针“域”存放的不是元素在内存中的真实地址,而是在数组中的位置。这样的链表
称为静态链表。而通过定义一个较大的结构体数组来作为备用结点空间(即存储池),
每个结点应至少含有两个域:data域和cursor域。
线性表的静态单链表存储结构 :

#define MAXSIZE 100;
typedef struct
{
  ElemType data;
  int cur;
}component,SLinkList[MAXSIZE];