
数据结构
wming3
因为喜欢, 所以认同. sina-weibo wming3
展开
-
斐波那契数列-数组和递归-C语言
兔子在出生两个月后,就有繁殖能力,一对兔子每一个月能生成一对小兔子来,假设所有的兔子都不死,那么一年之后可以繁殖多少对兔子? 这个问题就是 典型的 斐波那契数列 斐波那契数列的特点是: 前面相邻两项之和,构成了后一项. 这里用 分别用数组和递归两种方式实现斐波那契数列的算法/*斐波那契 数组和递归实现打印前45位斐波那契数列的时候可以看到 数组的运算效率比递归要高许多递原创 2015-06-29 12:04:50 · 15346 阅读 · 1 评论 -
hash查找
查找算法中 hash查找是最快的.但是它需要先构造hash表,构造hash表之后利用hash函数在hash表中查找的速度是非常迅速的 所以时间复杂度是O(1) 最常用的构造散列函数的方法是: 除留余数法 F(key) = key mod P (P <= M) 若散列表的长度是M, 通常p为小于或等于表长(最好接近于m)的最小质数,或不包含小于20质因子的合数. has原创 2015-07-20 17:14:46 · 1229 阅读 · 0 评论 -
二叉树 二叉树的性质 存储结构 遍历二叉树 C实现二叉树的创建和遍历 线索二叉树
定义 二叉树(binary tree)是n(n>=0)个结点的有限集合,该集合为空集合称为空二叉树,或者有一个根结点和两棵互不相交的,分别称为树根结点的左孩子树和右孩子树组成.二叉树的特点 每个结点最多有两棵子树,所以二叉树总没有度大于2的结点 左子树和右子树是有顺序的,次数不能任意颠倒 即使树中某结点只有一棵子树,也要区分是左子树还是右子树 特殊的二叉树1. 斜树原创 2015-07-06 20:20:41 · 1769 阅读 · 2 评论 -
快速排序-java实现
快速排序算法的实现//快速排序算法public class QuitSort { public static void main(String[] srgs){ int arr[] = {12,2,16,30,28,10,16,20,6,18}; show(arr); quit_sort(arr, 0, arr.length - 1); show(arr); }原创 2015-05-07 16:29:11 · 612 阅读 · 0 评论 -
二叉排序树
//二叉排序树#include <stdio.h>#include <stdlib.h> #define TRUE 1#define FALSE 0typedef int Status;//二叉树的结构体定义typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild; //左右孩子指针 }BiT原创 2015-07-29 12:43:41 · 1302 阅读 · 1 评论 -
树森林与二叉树的转换
树转换为二叉树 加线, 在所有的兄弟结点之间加一条连线. 去线, 对树中每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线. 层次调整,以树结点为轴心,将整个树顺时针旋转一定的角度,使之结构层次分明.第一个孩子是二叉树结点的左孩子,兄弟转化过来的孩子是结点的右孩子. 森林转换为二叉树 把每个结点转化为二叉树 第一棵二叉树不动,从第二原创 2015-07-06 20:43:54 · 1959 阅读 · 0 评论 -
赫夫曼树(最优二叉树)
赫夫曼树又称为最优二叉树 基本的压缩编码方法–赫夫曼编码路径长度 从树的一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称作路径长度. 树的路径长度 从树根到每一个结点的路径长度之和赫夫曼算法 根据给定的n个权值{w1,w2,,……, wn}构成n棵二叉树的集合F={t1,t2,,,… tn},其中每棵二叉树ti中只有一个带权为wi根结点,其左右原创 2015-07-06 21:21:00 · 1031 阅读 · 0 评论 -
循环队列-顺序存储-c语言实现
/* 循环队列-线性表-顺序结构 */ #include<stdio.h>#define OK 1;#define ERROR 0;#define MAXSIZE 20typedef int QElemType;typedef int Status;//顺序存储结构typedef struct { QElemType data[MAXSIZE]; int fro原创 2015-07-03 16:11:27 · 1655 阅读 · 0 评论 -
线性表链式存储-使用c语言实现
单链表使用c语言实现//单链表存储结构 #include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0typedef int ElemType;typedef int Status;typedef struct Node{ ElemType data; struct Node *next; } Node;typ原创 2015-06-27 12:01:30 · 7937 阅读 · 2 评论 -
栈-顺序存储结构-c语言
/*栈 顺序存储结构实现*/#include<stdio.h>//定义常量 存储空间的初始化分配#define MAXSIZE 20#define ERROR 0#define OK 1//用typedef定义类型typedef int Status;typedef int SElemType;//定义一个结构体类型typedef struct{ SElemType data原创 2015-06-28 18:36:20 · 5192 阅读 · 0 评论 -
线性表顺序存储-使用c语言实现
/*线性表功能的实现*/#include<stdio.h>//定义常量 存储空间的初始化分配#define MAXSIZE 20#define TRUE 1#define ERROR -1#define FALSE 0#define OK 1//用typedef定义类型typedef int Status;typedef int ElemType;//定义一个结构体类型typed原创 2015-06-27 11:24:45 · 6824 阅读 · 3 评论 -
冒泡排序-直接选择排序-直接插入排序-希尔排序-java实现
个人总结了4中简单的排序算法,使用java语言实现 类命名有些奇葩,主要是方便读者阅读 //冒泡排序算法 public class MaoPao {public static void main(String[] args) { int arr[] = {12,2,16,30,28,10,16,20,6,18}; show(arr); sort(arr); show(arr); }/原创 2015-07-04 19:11:49 · 977 阅读 · 0 评论 -
循环队列-链式存储结构-c语言实现
/* 循环队列-线性表-链式结构 */#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0typedef int Status;typedef int QElemType; //节点 定义 typedef struct QNode{ QElemType data; struct原创 2015-07-03 15:57:08 · 2849 阅读 · 0 评论 -
树 树的概念 树的存储结构
树的定义树(tree)是n(n>=0)个节点的有限集.n=0时为空树.在任意一颗非空树中: (1) 有且仅有一个特定的称为根(root)的节点; (2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集 t1 t2…tm,其中每一个集合是一个子树,称为又根的子树. 注意 根的结点是唯一的.不可能存在多个根结点 子树的个数没有限制,但是它们一定是互不相交的.结点的分类(1)根结点原创 2015-07-04 16:46:08 · 1097 阅读 · 0 评论 -
栈-链式存储结构-c语言
/* 栈 链式存储结构实现 第一个结构体是每一个节点元素, 类似于链表 第二个结构体是用个指针top指向链表的尾部 */#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0typedef int SElemType;typedef int Status;typedef struct Stac原创 2015-06-28 18:42:15 · 2660 阅读 · 0 评论 -
数据结构课程设计-通讯录管理系统c++版(顺序表存储,折半查找,递增排序)
1:要求通讯录管理系统(1)用顺序表作为通讯录的存储结构。每条通讯录包含:姓名,城市,电话。表中的记录按姓名非递减有序,每插入一条记录后,应使表中记录仍保持按姓名非递减排序。(2)实现插入、删除、修改、显示、查找功能(插入、删除、查找均以姓名作为关键字折半查找)(3)人机交互界面。原创 2014-11-03 21:35:00 · 7423 阅读 · 0 评论