#include
#include
//链表的定义
typedef void List;
typedef void ListNode;
//链式链表的相关定义
typedef struct _tag_linklist SqList;
typedef struct _tag_linkNode SqListNode;
typedef int Sqdata;
//创建一个空链表,...
分类:
其他好文 时间:
2014-09-10 00:29:29
阅读次数:
287
实验目的1. 定义单链表的结点类型。2. 熟悉对单链表的一些基本操作和具体的函数定义。3. 通过单链表的定义掌握线性表的链式存储结构的特点。4. 掌握循环链表和双链表的定义和构造方法。实验内容该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函...
分类:
其他好文 时间:
2014-09-09 10:53:38
阅读次数:
293
线性表的链式存储结构——链表,包含单链表、双链表、循环链表等。单链表的结点由数据元素和指向下一个结点的指针构成,是最简单的一种链表结构。对单链表的操作非常多,如查找、插入、删除、逆置、打印等,现对这些操作的实现做一个小结,代码用C语言实现。#include#includetypedef struct...
分类:
其他好文 时间:
2014-09-03 19:36:47
阅读次数:
271
1.
图的广度优先搜索实现借助于队列结构;
图的深度优先搜索除了递归方式外,还可借助堆栈、迭代方式实现。
2.
线性表的链式存储结构所需的存储空间一般要多于顺序存储结构。因为顺序存储结构只要存元素的内容,链式存储还需要多一块区域来存储相邻节点的地址。
3.
根结点的层数为0,根的孩子层数为1
树的深度:结点层数最大值。
树的高度:最大层数+1
4.树转换为...
分类:
其他好文 时间:
2014-08-28 19:52:56
阅读次数:
227
题意:给出中序和后序序列,求从根到叶子结点这样路径和值最小的叶子结点。如果和值相等,则选择叶子结点值较小的那个。
思路:由中序和后序序列递归地构造二叉树。顺序存储显然不行,使用链式存储。由于每个结点输入的是数字而不是字母,这里采用整型数组来存的,而不再是字符串,可能更方便些。build(n,a1,a2)函数是利用中序序列a1和后序序列a2构造有n个结点的二叉树,返回根结点指针。递归构造出二叉树后...
分类:
其他好文 时间:
2014-08-26 19:40:26
阅读次数:
200
对于堆大家都不陌生,无非就是最大堆和最小堆之分,堆的使用很广泛,优先队列、求大叔组的前k个数都可以用堆实现,且时间复杂度低。但是对于堆的具体实现存在几种不同的方式,它们各有优势。根据堆底层的实现可分为顺序存储堆和链式存储堆,链式存储又分为左式堆、斜堆以及二项..
分类:
其他好文 时间:
2014-08-25 17:18:25
阅读次数:
248
2.3.1 线性链表 线性链表的链式存储结构的特定是用一组任意的存储单元存储线性表的数据元素(这组数据存储单元可以是连续的,也可以是不连续的)。 节点包括:数据域和指针域 只包含一个指针域的称为线性链表又称为单链表。 单链表的主要操作代码如下:#include#includeusing na...
分类:
其他好文 时间:
2014-08-25 01:02:33
阅读次数:
281
1 /* 2 * 二叉树 3 * 4 * (将完全二叉树的数组形式改为链表形式) 5 * 6 * 1 7 * 2 3 8 * ...
分类:
其他好文 时间:
2014-08-17 11:39:16
阅读次数:
345
静态链表和动态链表是线性表链式存储结构的两种不同的表示方式。静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。动态链表是相对于静态链表而言的,一般地,在描述线性表的链式存储结构时如果没有特别说明即默认描述的是动态链表。下面给出它们的简单...
分类:
编程语言 时间:
2014-08-15 22:28:09
阅读次数:
330
自己实现了二分查找的循环实现和递归实现
说明:二分查找适用于顺序存储结构,不适于链式存储结构,是一个高效的查找方法。虽然折半查找效率高,但是要排序,排序本身是一种很费时的运算。
要求传入的表是有序的。
二分查找的过程可用二叉树描述,把当前区间的中点位置上的元素作为根,左子表和右子表中的元素分别作为根的左子树和右子树,由此得到二叉树。
此树称为描述折半查找的判定树或...
分类:
其他好文 时间:
2014-08-14 16:43:58
阅读次数:
257