数据结构
文章平均质量分 93
你好,明天,,
你好,明天。一个今天胜过两个明天。
展开
-
数据结构知识点总结
图的存储使用:①邻接矩阵:二维矩阵,如A[i][j]=n(权值)或者A[i][j]=0/1,无线图的邻接矩阵是对称矩阵。①自底向上堆化:会产生“气泡”浪费存储空间,用于插入元素,即先将元素放至数组末尾,上浮。堆的插入和删除效率高,时间复杂度是O(logn),初始化的时间复杂度是O(n)。递归,排序,二分查找,搜索,哈希算法,分治算法,动态规划,字符串匹配算法等。②自顶向下堆化:用于删除堆顶元素,将末尾元素放至堆顶,再向下堆化,下沉。数组,栈,队列,链表,散列表,二叉树,堆,跳表,图,树。原创 2023-10-17 11:09:42 · 424 阅读 · 0 评论 -
十进制转换为二进制非递归栈实现
用栈实现十进制转换为二进制,用到模板库中的关于栈的部分函数。以下是C++源代码:#include<bits/stdc++.h>using namespace std;stack<int> sta;int main(){ int n; while(cin>>n){ while(!sta.empty()) sta.pop(); if(n...原创 2018-12-23 18:06:17 · 672 阅读 · 0 评论 -
数据结构------简单选择排序 C++ 实现
简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 (1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 简单选择排序的时间复杂...原创 2018-12-21 17:05:47 · 535 阅读 · 0 评论 -
数据结构------快速排序 C++ 代码
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键...原创 2018-12-21 12:26:00 · 557 阅读 · 0 评论 -
C/C++源代码实现对随机生成的数据进行排序(直接插入排序、折半插入排序)
代码实现功能如下:1.产生1E4个随机数并对随机数进行排序;2.计算排序所用时间;3.排序方法为直接插入排序和折半插入排序。源代码如下:#include<stdio.h> #include<stdlib.h>#include<time.h> //用到 time 函数 #include<iostream>using na...原创 2018-12-10 15:44:50 · 4304 阅读 · 3 评论 -
数据结构----直接选择排序C++代码
插入排序的基本思想是:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。 算法步骤: 首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后...原创 2018-12-20 21:10:43 · 593 阅读 · 0 评论 -
最小生成树------克鲁斯卡尔算法(数据结构)
树(Tree):如果一个无向连通图中不存在回路,则这种图称为树。生成树 (Spanning Tree):无向连通图G的一个子图如果是一颗包含G的所有顶点的树,则该子图称为G的生成树。生成树是连通图的极小连通子图。这里所谓极小是指:若在树中任意增加一条边,则将出现一条回路;若去掉一条边,将会使之变成非连通图。最小生成树(Minimum Spanning Tree,MST):或者称为...转载 2018-11-06 20:55:56 · 16102 阅读 · 1 评论 -
递归算法遍历二叉树(先序、中序、后序遍历二叉树,求树的深度,结点个数等)
递归实现二叉树基本操作源代码实现:#include<iostream>using namespace std;typedef struct node{ struct node * lchild; struct node * rchild; char data;}BiTreeNode,*BiTree;void CreateBiTree(BiTree &T...原创 2018-10-27 17:37:41 · 8897 阅读 · 2 评论 -
二叉树相关操作代码实现(先序、中序、后序遍历,递归及非递归算法实现,深度,结点数,叶子结点数等代码实现)
二叉树相关操作的实现(先序、中序、后序遍历,递归及非递归算法实现,深度,结点数,叶子结点数等代码实现)以下是源代码:#include<stdio.h>#include<malloc.h>#include<stack>#include<iostream>using namespace std;#define MAX 20typed...原创 2018-10-27 17:30:59 · 2830 阅读 · 0 评论 -
数据结构C/C++代码实现 顺序表栈基本操作
顺序表栈基本操作的实现 源代码:#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define MAXSIZE 100//#define Status int#define OK 1#define OVERFLOW -2#define Fals...原创 2018-10-07 16:38:15 · 959 阅读 · 0 评论 -
数据结构C/C++代码实现 栈链表基本操作
实现栈链表基本操作:#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct linknode{ ElemType data; struct linknode *next;}LiStack;/****************初始化链栈*************...转载 2018-10-07 16:29:09 · 793 阅读 · 0 评论 -
数据结构C/C++语言 循环队列基本操作代码
实现循环队列的基本操作:#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define MAXQSIZE 100#define OK 1#define ERROR 0#define OVERFLOW -1#define False 0#def...原创 2018-10-07 15:55:55 · 1583 阅读 · 2 评论