`
vaneng
  • 浏览: 18435 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
社区版块
存档分类
最新评论

静态链表-SLinkList

阅读更多
数据结构静态链表-SLinkList 参考书:《数据结构(C语言)》作者:严蔚敏

如果发现错误,请帮忙指正,谢谢。

转载请注明@author vaneng

SLinkList.h
/*静态链表:首先它是个数组,这个数组相当于一个块可以由你自由支配的内存空间
 *这块内存空间的首地址是SLinkList[0]
 *每个链表需要保存的只是它头结点在这个数组是第几个元素就可以了。
 *所有的内存分配和回收都是头结点的下一个进行操作
 *@author vaneng
 */
#define MAXSIZE 100
typedef int ElemType;
typedef struct{
	ElemType data;
	int cur;
}component, SLinkList[MAXSIZE];
void initSpace_SL(SLinkList space);
int malloc_SL(SLinkList space);


SLinkList.c
/* author vaneng*/
#include "SLinkList.h"
void initSpace_SL(SLinkList space){
	int i;
	for(i = 0; i< MAXSIZE; i++){
		(space+i)->data = 0;
		(space+i)->cur = i+1;
	}
	(space+MAXSIZE - 1)->cur = 0;
}
int malloc_SL(SLinkList space){
	int i = space[0].cur;
	if(space[0].cur) space[0].cur = space[i].cur;
	return i;
}
void Free_SL(SLinkList space, int k){
	space[k].cur = space[0].cur;
	space[0].cur = k;
}
分享到:
评论

相关推荐

    数据结构复习笔记-静态链表

    `SLinkList` 是整个静态链表的数组。 接下来介绍静态链表的基本操作: 1. 初始化备用空间链表 `InitSpace_SL`:将数组中的所有元素链成一个备用链表,`space[0]` 的 `cur` 成为空闲链表的头指针。 2. 申请一个...

    C语言数据结构 静态链表

    这里,我们使用了一个数组 `SLinkList` 来存储静态链表的结点,每个结点包含一个整型数据 `data` 和一个整型游标 `cur`。在初始化函数 `InitSpace_SL` 中,我们将数组的各分量链成一个备用链表,其中 `space[0].cur`...

    静态链表的剖析.pdf

    - `SLinkList[MAXSIZE]`:静态链表的数组定义,数组中的每个元素包含两个部分,一个是数据部分`data`(由于代码片段不完整,未显示定义),另一个是下标部分`cur`,用来存储下一个元素的下标。 在实际编程中,静态...

    数据结构C语言版 静态链表实现集合运算.doc

    "数据结构C语言版 静态链表实现集合运算" 静态链表是一种特殊的链表结构,它将链表的结点存储在一个数组中,每个结点的cur成员变量存储了该结点在数组中的下一个结点的索引值。这种数据结构可以实现链表的基本操作...

    C语言实现静态链表

    C语言实现静态链表 C语言实现静态链表是指在C语言中使用静态数组来实现链表结构的方法。静态链表是一种特殊的链表结构,它的内存是事先分配好的,链表的每个结点都是一个固定长度的结构体,而不是像动态链表那样...

    2.3.5 静态链表1

    静态链表的定义通常使用结构体来完成,例如定义一个名为`SLinkList`的数据结构,其中包含一个固定长度的`Node`类型数组。数组的每个元素代表一个结点,每个结点包括数据和游标。例如,如果数组长度为`MaxSize`,那么...

    循环链表及应用PPT学习教案.pptx

    PPT中提到了静态链表的类型定义,包括两个关键的结构体类型:Snode和SlinkList。Snode用于定义单个结点,包含一个数据元素和一个整型变量cur,用于表示后继结点的下标。SlinkList是一个数组,其元素类型为Snode,...

    数据结构实践

    静态链表 SlinkList 应用 集合并 MerGroup 多项式求和 Poly 3 栈 顺序栈 SqStack 链栈 LinkStack 栈应用 数制转换 Conversion 表达式计算 Expresion 4 队列 循环队列 CirQueue 链队 LinkQueue 5 串 串类 A...

    C++ 实现静态单链表的实例

    接下来,我们定义一个`SLinkList`类来表示静态链表。这个类包括以下成员: 1. `head`:表示链表的头部,初始化为0,表示空链表。 2. `space`:记录当前未使用的第一个节点的位置。 3. `length`:表示链表中元素的...

    数据结构系统知识课件

    把这种用数组描述的链表就称为静态链表.类型说明如下:  #define MAXSIZE 1000  typedef struct {  ElemType data;  int cur; //指示结点在数组中的相对位置  }component; SLinkList[MAXSIZE]; 这种存储...

    数据结构算法伪码汇总.pdf

    - **静态链表**:利用数组的下标作为指针,适用于不需要频繁修改的场景。例如: ```c #define MaxSize 50 typedef struct { ElemType data; int next; } SLinkList[MaxSize]; ``` **4. 线性表应用** 线性表...

    车牌号管理系统数据结构课程设计报告.doc

    - **链表**:设计中提到了静态查找表的抽象数据类型,可能是基于链表的数据结构来存储车牌信息,因为链表能方便地进行插入和删除操作。 2. **抽象数据类型(ADT)**: - 定义了一个名为`RecordType`的结构体,...

Global site tag (gtag.js) - Google Analytics