静态链表的C++实现】的更多相关文章

静态链表和动态链表是线性表链式存储结构的两种不同的表示方式. 静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅需修改指针,故仍具有链式存储结构的主要优点. 动态链表是相对于静态链表而言的,一般地,在描述线性表的链式存储结构时如果没有特别说明即默认描述的是动态链表. 下面给出它们的简单实现,关于线性表更为详尽的C语言的实现,可以参考 http://www.cnblogs.com/choon/p/3876606.html 静态链表 #define _CRT_SECURE_NO_…
静态链表1.下标为0的游标存放最后存放数据节点的游标,即是第一个没有存放元素(备用链表)的下标2.最后一个的节点存放第一个由数值得下标3.第一个和最后一个都不存放数据 即是备用链表的第一个的下标 4.最后一个存储数据的节点的游标为0 静态链表主要是根据游标来遍历,以前没有指针用的思想 假如我要删除一个元素 图不多描述,自己画画就明白,然后代码部分.都有注释, #include <stdio.h> #define ElemType int #define Status int #define M…
#include "string.h" #include "ctype.h" #include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FAL…
结点类 1 //结点类 2 class Node<T> { 3 private T data; 4 private int cursor; 5 6 Node(T data, int cursor) { 7 this.data = data; 8 this.cursor = cursor; 9 } 10 11 public void setData(T data) { 12 this.data = data; 13 } 14 15 public void setCursor(int cursor…
图中黄色部分为(A-B)U(B-A)的实际意义,用结构数组做静态链表来实现该表达式 大致流程是先建立A链表,接着将挨个输入的B中元素在A链表中遍历.如果没找到,就加到A链表结尾下标为endpointer的位置之后.如果找到了,删除该节点(回收到备用链表中). 需要注意的是: 每次拿着B中元素遍历A链表时,遍历到endpointer就停了.因为endpointer之后的都是B中元素,排除B中有相同元素的可能性,只用与A中元素(即endpointer之前的比较) 代码中,B中元素的插入方式,是在en…
C代码: #include<stdio.h> #include<stdlib.h> #include<malloc.h> //创建简单静态链表 typedef struct node{ int data; struct node *next; }Node,*pNode; int main() { pNode Head,p; Node a,b,c; a.data=; b.data=; c.data=; Head=&a; a.next=&b; b.next=…
-----------------------------------------------第一次发代码,写在前面------------------------------------------------------ 思路不完全等同于严师太的课本,所以代码并不是参照课本. 代码参照<大话数据结构>相应章节,并经过了相应修改 注意:链表下标为i的节点和链表中第i个节点在链表初始化后是一样的,但是在经过删除操作后不一样了. 为此本人在这里浪费了很多时间调试.注意细节. 代码可有某些地方有瑕…
静态链表就是将数组实现单链表: int Malloc_SLL(StaticLinkList space) { int i = space[0].cur;//取得第一个头节点的下标 if( space[0].cur ) space[0].cur = space[i].cur; // 把它的第一个备用节点用来作为备用.返回其索引,头节点设置为原来一个节点的下一个节点 return i; } /* 在静态链表L中第i个元素之前插入新的数据元素e */ Status ListInsert( Static…
静态链表是利用一维数组实现逻辑上的单链表结构,结点的逻辑上相邻但物理位置上不一定相邻,因为内存分配上是一次性的,故称为静态. 特点: 预先需要一片连续的存储空间: 非随机存取: 无现成的"内存"分配和回收函数,得自己实现: 最多存储MAXSIZE - 1个数据: 核心是包含了两个链表: 数据链表(初始化完成后需记住头结点,一般为数组的第1个分量) 备用的空闲链表(数组的第0个分量是备用链表的头结点) 这两个链表都需要自己维护. Status.h文件 #ifndef STSTUS_H #…
所有结点(结构体变量)都是在程序中定义的,不是临时开辟的,也不能用完后释放,这种链表称为静态链表.对各结点既可以通过上一个结点的next指针去访问,也可以直接通过结构体变量名s1, s2, s3去访问. 动态链表则是指各结点是可以随时插入和删除的,这些结点并没有变量名,只能先找到上一个结点,才能根据它提供的下一结点的地址找到下一个结点.只有提供第一个结点的地址,即头指针head,才能访问整个链表.如同一条铁链一样,一环扣一环,中间是不能断开的. #include <QCoreApplicatio…