数据结构 第三季(part 3)
2014-05-05 13:45
344 查看
//静态链表:用数组描述的链表叫静态链表 //数组的每个下标都对应着一个data和一个cur,data用来存放数据元素,游标相当于链表中的next指针 //线性表的静态链表的存储结构 #define MAXSIZE 100 typedef struct{ ElemType data; int cur;//游标,为0时表示无指向 }Component,StaticLinkList(MAXSIZE); //将一维数组space中各分量链成一备用链表 //space[0].cur为头指针,"0"表示空指针 Status InitList(StaticLinkList space){//初始化静态链表 int i; for(i=0;i<MAXSIZE-1;i++) space[i].cur = i+1; space[MAXSIZE-1] = 0; return OK; } int Malloc_SLL(StaticLinkList space){//获得空闲结点的下标 int i = space[0].cur;//当前数组第一个元素的cur存的值,就是要返回的第一个备用空闲的下标 if(space[0].cur) space[0].cur = space[i].cur; return i; } Status ListInsert(StaticLinkList L,int i,ElemType e){//在L中的第i个元素之前插入元素e int j,k,l; k = MAXSIZE-1; if ( i < 1 || i > ListLength(L) + 1) return ERROR; j = Malloc_SSL(L);// if( j ){ L[j].data = e; for(l=1;l<i-1;i++) k = L[k].cur;//找到第i个元素 L[j].cur = L[k].cur;//先确定新加入元素的下一个元素是什么 L[k].cur = j;//确认新加入元素的位置 return OK; } return ERROR; } Status ListDelete(StaticLinkList L,int i){//删除第i个元素 int j,k; if(i<1||i>ListLength(L)) return ERROR; k = MAXSIZE - 1; for(j=1;j<=i-1;j++) k = L[k].cur; j = L[k].cur; L[k].cur = L[j].cur; Free_SLL(L,j); return OK; } void Free_SLL(StaticLinkList space,int k){ space[k].cur =space[0].cur; space[0].cur = k; } int ListLength(StaticLinkList L){//返回静态链表的长度 int j =0; int i = L[MAXSIZE-1].cur; while(i){ i = L[i].cur; j++ } return j; }
相关文章推荐
- 数据结构 第三季(part 2)
- 数据结构 第三季(part 1)
- 数据结构与算法(Python)——常见数据结构Part3(队列和循环队列)
- 数据结构-----复习(严蔚敏版)part1
- 【字符串数据结构后缀系列Part3】后缀自动机的性质和应用
- C++程序设计_part 3 数据结构 chap15 模板
- 数据结构与算法(Python)——常见数据结构Part4(二叉树)
- Solaris Source Insight: PCI bus driver moduls - npe Part 1
- 您希望通过将所有ArrayList对象替换为相应的泛型版本以提高应用程序的效率,并使得代码更易于使用。当结构体或其他值类型存储在这些数据结构中时,会导致装箱/拆箱操作,这时就需要这么做。
- ffmpeg 基本数据结构和对象(二): muxer/demuxer 和 encoder/decoder
- MySQL索引背后的数据结构及算法原理
- Android数据库ORMlite框架翻译系列(第二章:part 1)
- 数据结构—文本串加密
- 微软等数据结构+算法面试100题(29)--在字符串中删除特定的字符
- machine learning key word (part two)
- 数据结构设计——班级个人信息管理系统
- 数据结构----排序
- WPF Cover Flow Tutorial : Part 3
- Android JNI 使用的数据结构JNINativeMethod详解
- 数据结构——排序——鸡尾酒排序算法