数据结构与算法
作者水平有限,还请大家多多指教
SmithJun
http://mambajun.github.io/
展开
-
数据结构与算法 快速排序 c/c++
#include<stdio.h>void input(int [], int);void quick_sort(int [], int, int);void swap(int *, int *);void output(int [], int);int main(void) { int n = 6; int arr[n] = {2, 3, 9, 7, 0...原创 2020-01-10 16:05:56 · 221 阅读 · 0 评论 -
链表的基本操作(C++)类的写法、(模板)
#if 1 #include <iostream> using namespace std;template<class Type>class Link{public: Link(); void Insert(Type&);//插入 void Delete(Type );//删除 void Reverse();//倒置 void Print();//输出 ~Lin...原创 2018-05-31 23:21:55 · 934 阅读 · 0 评论 -
各种排序算法比较 时间复杂度,空间复杂度
时间复杂度n^2表示n的平方,选择排序有时叫做直接选择排序或简单选择排序O(n)这样的标志叫做渐近时间复杂度,是个近似值.各种渐近时间复杂度由小到大的顺序如下O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)一般时间复杂度到了2^n(...原创 2018-11-19 15:45:23 · 1615 阅读 · 0 评论 -
数据结构 图 最小子树C/C++ 普里姆算法(Prime)
最小子树有两个最常用的方法1、Prime算法2、克鲁斯卡尔算法这里,小编就先介绍 Prime算法思路:将 图存入 邻接表中,这时 创建一个额外空间,是一个结构体数组取一个点为树根,开始,每次找出最小权值这中算法是 树一点点长大,从根,开始,直至最后整个树建立 // 数组+链表 图.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。...原创 2018-11-12 22:48:34 · 1232 阅读 · 0 评论 -
数据结构 Huffman 树 C/C++
首先小编来介绍一下 Huffman Tree根据每个结点的权值不同把每个结点放在树的不同层,权值越大,层数越小;在一个已知的数据中对这组数据进行HuffmanTree 的构建,1、每次将最小的两个结点取出进行自下而上的顺序构建树,2、将其权值相加放在数组中,并将这两个结点去除,3、循环 1、2 步骤,直至只有一个结点,HuffmanTree构建成功Ps:我这里是默认 从左到...原创 2018-11-02 11:02:27 · 361 阅读 · 0 评论 -
链表的基本操作及链表的有序合并
#include <stdlib.h>#include <iostream>using namespace std;template <class Type>struct Node { Type data; Node * next;};template <class Type>class Link{private : Node<Type>...原创 2018-06-02 15:18:24 · 271 阅读 · 0 评论 -
两种单链表(没有头节点 和 带有头节点)的创建 及 基本操作(增删改查)
带有头节点:#include "pch.h"#include "pch.h"#include "SingleList.h"#include <iostream>using namespace std;int main(void){ SingleList list; list.create(10); list.print(); cout << "创...原创 2018-09-12 10:45:50 · 5956 阅读 · 0 评论 -
将两条有序单链表合成一条链表(两种写法)
整体代码:typedefstruct Node { int data; struct Node * next;}Node;class SingleList{ Node head; int length; static int I;public: SingleList(); void create(int len); void insert(int index,in...原创 2018-09-17 21:17:32 · 1175 阅读 · 0 评论 -
单链表的反转(转置)
template<class Type>inline void Link<Type>::InverseLink(){ Node<Type> * current = head; Node<Type> * next = NULL; Node<Type> * result = NULL; while ( current ) {...原创 2018-09-19 10:24:46 · 1039 阅读 · 0 评论 -
数据结构与算法 循环列队 C / C++
#pragma oncetypedefstruct Queue { int * m_Queue; int m_length; int m_capacity;}SqQueue;class RoundQueue{ SqQueue queue; int m_head; int m_tail;public: RoundQueue(int capacity);//InitQue...原创 2018-09-25 23:43:41 · 267 阅读 · 0 评论 -
数据结构 链式堆栈C/C++
堆栈分为顺序存储 和 链式存储 两种下面给大家提供一个链式存储的,这里小编是用 C++来描述的堆栈思路:堆栈是先进后出的特点,利用这个特点,把表头后作为堆栈口。设置一个 head表头保持不动,因为 堆栈是只能在一头操作的,所以需要 把 表头后作为堆栈的口,进行出栈入栈操作 #include <iostream>using namespace std;ty...原创 2018-10-08 13:18:59 · 289 阅读 · 0 评论 -
数据结构 链式队列C/C++
列队分为链式存储 与 顺序存储下面给出小编写的顺序存储的链接https://blog.csdn.net/qq_40990854/article/details/82846939这篇是小编写的链式存储。思路:队列是一个先进先出的特点,在链表的表头 head作为固定不动的,在表尾入队,在表头 head后出队#include <iostream>using names...原创 2018-10-08 13:31:01 · 250 阅读 · 0 评论 -
数据结构 稀疏矩阵的转置 C/C++
思路:三元结构体数组将分别存储 行, 列,值将行列交换对交换后的行进行排序typedef struct Node { int row; // 行 int col; // 列 int data; }Node;void initList(Node *, int);int inputList(Node *, int[][3],int,int);void prin...原创 2018-10-16 18:32:22 · 1545 阅读 · 0 评论 -
数据结构 中缀表达式转后缀表达式 C/C++
思路:掌握 运算符高进低出的原则,再结合栈结构存储特点#include<iostream>using namespace std;template<class Type>struct Node { Type data; struct Node * next;};template<class Type>class Stack{ N...原创 2018-10-17 15:50:28 · 1665 阅读 · 0 评论 -
数据结构 稀疏矩阵的加减运算
思路:首先是要了解矩阵的加减运算法则,即同坐标的进行加减 ,所以只需要将两个矩阵中相同的点进行加减,不同的只需要在三元数组中,要一个新的空间进行存储即可#include<iostream>using namespace std;typedef struct Node { int row; // 行 int col; // 列 int data; }Nod...原创 2018-10-17 16:02:41 · 2553 阅读 · 0 评论 -
数据结构 二分查找C/C++
思路:二分查找就是每次取中间值,然后每次就可以减少一半的数据规模,从而达到 O(log2 n)的时间复杂度。#include <iostream>using namespace std;int find(int [],int,int,int);void output(int a[],int begin,int end);int main(void){ int a...原创 2018-10-22 19:43:02 · 482 阅读 · 0 评论 -
数据结构 二叉树的 建立 与 基本操作C/C++
typedef struct Node { char data; struct Node * leftChild; struct Node * rightChild;} Node;Node * preCreateBt(Node *);void preOrderTransverse(Node*);void inOrderTransverse(Node*);void postO...原创 2018-10-29 10:29:53 · 506 阅读 · 0 评论