数据结构
乔治的孤独
这个作者很懒,什么都没留下…
展开
-
顺序表(一)----定长顺序表的实现
顺序表的顺序指用一组地址连续的储存单元依次存储线性表的数据结构。其结构如下所实现的功能: 顺序表的初始化 顺序表的插入 顺序表删除某一结点 顺序表的查找 顺序表的长度 顺表是否为空 顺序表的清空 顺序表的销毁最简单顺序表—固定的大小SeqList.h#pragma once //预防头文件被重复引用#define SIZE 10typedef struct Se...原创 2019-05-13 19:28:30 · 191 阅读 · 0 评论 -
顺序表(二)----可动态增长的顺序表的实现
可实现的功能与固定长度的顺序表相同优点,可以扩充空间防止越界//不定长顺序表#pragma once#define INITSIZE 10typedef struct DSeqList{ int *elem;//保存动态内存的地址,用于存放数据 int length;//有效数据个数 int listsize;//总单元个数}DSeqList,*PDSeqList;//...原创 2019-05-13 19:37:17 · 220 阅读 · 0 评论 -
链表(一)------单链表
链表的的特点是用一组任意的储存单元储存线性表的数据元素(储存单元不一定连续)链表的表示形式为了表示每个数据元素与后继元素之间的逻辑关系,除了储存其本身的信息外,使用一个变量存储其直接后继的信息链表由一个个结点组成,每个结点包含数据域和指针域单链表的实现----带头结点List.h#pragma once//带头节点的单链表//单链表的尾节点next为NULLtypedef...原创 2019-05-13 20:27:29 · 182 阅读 · 0 评论 -
链表(二)-----循环链表
循环链表是另一种形式的链式储存结构特点: 表中的最后一个结点的指针域指向头结点,整个链表形成一个环clist.h#pragma once//循环链表,尾节点next保存头节点的地址typedef struct CNode{ int data; struct CNode *next;}CNode,*CList;//初始化void InitList(CList plist...原创 2019-05-13 20:36:54 · 143 阅读 · 0 评论 -
顺序表(三)-----顺序表相关练习
设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。int orderInsert(PDSeqList Dseq, int key){ int i; for (i = 0; i < Dseq->length; i++) { if (Dseq->elem[i] > key) ...原创 2019-05-13 19:57:02 · 511 阅读 · 0 评论 -
链表(三)-----双向链表
前两篇博客中介绍的链式储存结构中只有一个指示直接后继的指针域。因此,从单链表中的某个结点出发,之能向后遍历每个结点,所寻找这个结点的直接前驱只能向用头结点出。而若在每个结点的指针域中再加入一个指向当前结点直接前驱的指针,就可以克服以上问题。DList.h#pragma once//双向链表,带头节点,头的前驱为NULL,尾的后继为NULLtypedef struct DNode{...原创 2019-05-13 20:58:12 · 173 阅读 · 0 评论 -
静态链表实现与分析
静态链表给没有指针的高级语言设计的一种实现单链表能力的方法,实现方法使用一个数组的方式储存每一个元素,每个数据元素都是由两个数据域组成,data 和 cur。data表示当前数据域,cur表示当前元素的直接后继所在数组中的位置这个数组用来表示两个链表,一个数据链表,一个备用链表,下图用蓝色表示备用链表,绿色为数据链表实现功能说明初始化以零号下标元素为备用链表指针以一号下...原创 2019-05-13 22:13:24 · 219 阅读 · 0 评论 -
单链表算法一
本博客涉及的有关单链表的算法清单 1. 链表反转 2. 合并两个有序链表 3. 找出链表的中间结点 4. 求出链表倒数第k个值 5. 删除当前结点 6. 在当前结点前插入一个结点链表反转思路 : 将链表从头节点next域置空,将链表看成两个链表,一个是原链表,从头节点断开,一个是备用的链表,第一个结点是原头结点的next域指向的链表,将备用链表的结点从第一个依次使用...原创 2019-05-19 15:44:08 · 397 阅读 · 1 评论 -
单链表算法二-----含环的单链表
Node *IsCircle(List plist){ Node *quick = plist; Node *slow = plist; while (quick != NULL && quick->next != NULL) { quick = quick->next->next; slow ...原创 2019-05-19 17:22:56 · 199 阅读 · 1 评论