数据结构
CaelusZhao
这个作者很懒,什么都没留下…
展开
-
循环队列的基础操作(C++)
#include "iostream"#include"LinkQueue.h"using namespace std;//===================队列(先进先出)=============/*只允许在队尾进行插入操作,而在队头进行删除操作的线性表*///==============循环队列(头尾相接)===========/*队列:数组+两个指针*/const原创 2017-07-20 15:15:28 · 800 阅读 · 0 评论 -
常见的几种排序算法
#include using namespace std;/*排序过程都是直接在内存中完成,统称为内排序*///=======================交换排序================/*冒泡排序:时间复杂度为O(n^2),空间复杂度为O(1)依次比较相邻两个元素,首先比较第1个位置和第2个位置的数,大的放后面,小的放前面,然后比较第2个位置第3个位置的数,重复进行到第原创 2017-08-05 22:08:39 · 246 阅读 · 0 评论 -
AVL树的基本操作 C++
#ifndef _AVLTREE_#define _AVLTREE_#include/*AVL树:1.它必须是二叉查找树。2.每个节点的左子树和右子树的高度差至多为1AVL树的查找、插入、删除操作在平均和最坏的情况下都是O(logn)平衡因子:将二叉树上节点的左子树高度减去右子树高度的值称为该节点的平衡因子,BF的取值范围为[-1,1]最小不平衡子树:距离插入节点最近的,且平衡原创 2017-07-28 15:27:58 · 670 阅读 · 0 评论 -
Huffman树的基本操作
#ifndef _HUFFMAN_#define _HUFFMAN_#include #include //哈夫曼:树的带权路径(WPL)最小的二叉树。用变长编码表进行编码,编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的templatestruct HuffmanNode{ HuffmanNode(T k, HuffmanNode* l = nullptr,原创 2017-07-25 11:32:37 · 387 阅读 · 0 评论 -
(链)栈的基本操作 C++
#include "iostream"using namespace std;//=====================栈(后进先出)====================/*栈也是线性表,限定在栈顶进行插入&删除,时间复杂度均为O(1)栈:最大存储大小+数据*///=================栈的顺序存储==================const int MAX原创 2017-07-19 20:59:25 · 859 阅读 · 0 评论 -
线性表的基本操作 C++
/*线性表存储结构:1.存储空间的起始位置;2最大存储容量;3.当前的长度*/#include"iostream"#include "vector"using namespace std;const int MAXSIZE_ = 20;typedef struct MyList{ int *data;//起始位置 int listSize;//最大容量 int l原创 2017-07-19 15:55:34 · 1948 阅读 · 0 评论 -
单(双向)链表的基本操作 C++
#include"iostream"using namespace std;//====================单链表===================================//如果不提供“头指针”,则整个链表都无法访问,链表的一个重要特点是插入、删除操作灵活方便.//插入操作处理顺序:中间节点的逻辑,后节点逻辑,前节点逻辑。按照这个顺序处理可以完成任何链表的插原创 2017-07-19 15:46:46 · 458 阅读 · 0 评论 -
顺序二叉树的基础操作(C++)
#ifndef _BSTREE_#define _BSTREE_templatestruct BSNode{ BSNode(T t) :value(t),lchild(nullptr),rchild(nullptr); T value; BSNode *lchild; BSNode *rchild; BSNode *parent; int LTag; int RTag;//原创 2017-07-22 15:36:48 · 705 阅读 · 0 评论 -
串的基本操作(C++)
#include"iostream"using namespace std;//=================串==============================/*两个串是否相等,必须是它们串的长度以及它们各个对应位置的字符都相等时,才算是相等.串的顺序存储结构的缺点是字符串的截断,截断就是超过预定义长度的串值被舍去.*///=========串的顺序存储=====原创 2017-07-21 21:38:11 · 2028 阅读 · 1 评论 -
链队列的基本操作(C++)
#pragma once//===================链队===================/*链队列是基于链表实现的队列:链表头部为队首,链表尾部为队尾*/templatestruct QueueNode{ T value; QueueNode *next; struct QueueNode(T x) :value(x), next(nullptr){};}原创 2017-07-20 15:24:30 · 1110 阅读 · 0 评论 -
一些查找算法 C++
#include using namespace std;/*查找:静态查找:1:查找某个元素是否存在;2.检索某个元素的特性;动态查找:查找时插入删除元素*///顺序查找int Sequential_Search(int* a, int lengh,int key){ for (int i = 0; i < lengh; i++) { if (key == a[i])原创 2017-08-05 22:10:44 · 708 阅读 · 0 评论