
数据结构学习
Bruce_shan
数据的时代
展开
-
快速排序
public class QS { public int getMiddle(Integer[] list, int low, int high) { int tmp = list[low]; //数组的第一个作为中轴 while (low < high) { //tmp是基准数 while (low < high &原创 2016-03-16 21:54:34 · 403 阅读 · 0 评论 -
子数组之和
1.题目描述给定一个含有n个元素的整形数组a,再给定一个和sum,求出数组中满足给定和的所有元素组合,举个例子,设有数组a[6] = { 1, 2, 3, 4, 5, 6 },sum = 10,则满足和为10的所有组合是{1, 2, 3, 4} {1, 3, 6} {1, 4, 5} {2, 3, 5} {4, 6}注意,这是个n选m的问题,并不是两两组合问题。2.暴力枚举求解public原创 2017-12-18 12:23:11 · 576 阅读 · 0 评论 -
两个有序数组判断存在相同元素
/** * 判断两个有序数组是否存在相同元素 * Created by sx on 2017/12/15. */public class hasSameElement { static boolean is_has_same_element(int[] arry1,int[] arry2) { //边界判断 if(arry1.length原创 2017-12-15 11:23:10 · 2461 阅读 · 0 评论 -
【数据结构与算法】二叉树递归与非递归遍历(附完整源码)
【数据结构与算法】二叉树递归与非递归遍历(附完整源码)标签: 二叉树遍历非递归2013-10-24 08:58 24826人阅读 评论(30) 收藏 举报 分类:数据结构与算法(22) 版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/de转载 2017-07-13 20:25:49 · 704 阅读 · 0 评论 -
链式队列
队列是一种先进先出线性表,队列是线性表的特化 也具有线性表的性质分为:顺序队列与链式队列 链式队列与线性表的单链表相似只不过链式队列只 允许从头部进行删除、尾部进行插入.需要为链式队列 创建一个头结点包括两个指针,指向队头的指针(front) 与指向队尾的指针(rear).当两个指针相等时队列为空lqueue.h//链式队列typedef int ElemType; //队列的数据类型 ty原创 2016-03-13 10:45:34 · 653 阅读 · 0 评论 -
循环队列
顺序队列图示: 由于顺序的非环状的队列不能很好地判断队列是否为满,造成假溢出的现象,因此引入循环队列很好地解决了这一问题 循环队列图示: 1.循环队列牺牲一个存储空间来区分队满和队空(牺牲一个存储空间只是其中一种解决方案),最大存储空间为 Maxsize-1; 2.队满条件: (q->rear+1)%Maxsize ==q->front 3.对空条件:q->front==q->rear原创 2016-03-12 20:38:23 · 1354 阅读 · 0 评论 -
顺序栈
栈的顺序存储称顺序栈,图示: .h文件//顺序栈 #define MaxSize 5 #define ElemType inttypedef struct { ElemType data[MaxSize]; ElemType top; //栈顶指针 }Stack;//函数声明 Stack InitStack(); //初始化一个栈(顺序栈为新建,与链栈不同) b原创 2016-03-11 20:14:57 · 682 阅读 · 0 评论 -
带头结点的链栈
链栈:采用链式存储的栈链栈的优点:便于多个栈共享存储空间和提高其效率,链栈不存在栈满上溢的情况。 实现:通常采用单链表老实现。 链栈规定所有的操作都在第一个结点处(表头)进行。 这里是带头结点的链栈图示: Lstack.h//链栈#define ElemType inttypedef struct Node * stack;//结构体typedef struct Node{ E原创 2016-03-12 11:41:28 · 5189 阅读 · 0 评论 -
双链表 double_list
.h 文件 double_node.h//双链表 #define ElemType inttypedef struct Node * Pnode;//这里要加冒号 typedef struct Node{ int data; struct Node *prev; struct Node *next;} Node,* DoubleList;//函数声明 void原创 2016-03-10 17:24:00 · 582 阅读 · 0 评论 -
单链表
//单链表// 引用库函数#include<stdio.h>#include<Stdlib.h> /*含ma l l o c ( ) 的头文件*/ //定义Elemtype元素类型 typedef int Elemtype; // //定义结构体typedef struct LNode{ Elemtype data; //数据域 struct LNo原创 2016-03-07 11:18:46 · 555 阅读 · 0 评论 -
动态顺序表
//动态顺序表//引用库函数 #include <stdio.h>#include <stdlib.h> //宏定义#define List_init_size 4#define List_add_size 2#define OVERFLOW -2 typedef int Elemtype; // Elemtype元素类型 //定义结构体typedef struc原创 2016-03-07 11:16:51 · 496 阅读 · 0 评论 -
静态顺序表
//顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。//线性表采用顺序存储的方式存储就称之为顺序表。//顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。#include "stdio.h"#include "stdlib.h"// ElemTYpe类型指定 方法一 #define ElemType int//原创 2016-03-07 11:13:54 · 597 阅读 · 0 评论 -
B-Tree 数据结构及Java 实现
1.B-Tree定义在计算机科学中,B树(英语:B-tree)是一种自平衡的树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。2.为什么引入B-Tree?首先,包括红黑树是将输入存入内存的一种内部查找树。而B树是前面平衡树算法的扩展,它支持保存在磁盘或者网络上的符号表进行外部查找,这些文件可能比我们以前考虑的输入要大的多(难以存入内存)。既然内容...原创 2018-07-10 21:37:39 · 4318 阅读 · 1 评论