数据结构
文章平均质量分 64
Dxy17
welcome:future
展开
-
数据结构-栈(Python实现)
目录栈的操作及其实现顺序栈(1)初始化一个空栈(2)判断是否为空(3)向栈中添加元素(4)输出栈中元素(5)输出栈顶的元素(6)输出栈中元素的个数总的代码:链式栈(1)定义(2)初始化(3)判断是否为空(4)添加元素(5)输出栈中的元素(6)输出栈顶元素(7)输出链式栈中节点的个数总的代码栈的操作及其实现栈的相关操作...原创 2019-05-15 19:49:40 · 329 阅读 · 0 评论 -
归并排序
void merge(vector<int> &data, int start, int mid, int end)//将两个有序数组data[start,..mid]和data[mid+1,..,end]合并{ //int *temp=new(nothrow) int[end-start+1]; //if(!temp) //{ //内存分配失败 // cout&l...原创 2019-10-02 17:39:30 · 94 阅读 · 0 评论 -
插入排序(C++实现)
插入排序包括:直接插入、折半插入、2-路插入、等。直接插入排序的思想是:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表(注意这里有移位操作,所以时间复杂度较大为o(n*n)#include<iostream>#include<vector>#include<algorithm>using namespace std;...原创 2019-09-03 16:42:50 · 380 阅读 · 0 评论 -
快速排序(C++实现)
快速排序是对冒泡排序的改进:基本思想是:通过一趟排序使待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则分别对这两部分记录进行排序,以达到整个序列有序。第一趟排序是:任选一个记录作为枢轴(通常是第一个元素),附设两个指针(或者变量)为low,high,先从high的位置开始向前搜索直到找到第一个小于枢轴记录的关键字,将其和枢轴所在的位置进行交换,然后从low的位置...原创 2019-09-03 11:42:08 · 6469 阅读 · 1 评论 -
冒泡排序(C++实现)
冒泡排序过程:首先将第一个关键字和第二个关键字进行比较,若为逆序则将两个记录交换,然后比较第二个记录和第三个记录,依次类推,知道第n-1个记录和第n个记录的关键字进行比较为止。此过程称为第一趟起泡排序,其结果为使得关键字最大的记录被安置到最后一个记录的位置,然后进行第二趟排序。例如:输入:49 38 65 97 76 13 27一趟结束后为:38 49 65 76 13 27 97...原创 2019-09-03 10:15:20 · 11621 阅读 · 1 评论 -
字符串的反转
C++中有关字符串的输入:(1)string s;while(getline(cin,s)//此时输入的空格计算在字符串内{ int len = s.length();//求输入的字符串的长度}(2)char s[50];while(cin.getline(s,50)){ int len = strlen(s);}(3)vector<...原创 2019-08-10 22:34:20 · 351 阅读 · 0 评论 -
最短路径_图(Dijkstra算法和Floyd算法)
最短路径可以看成是图的广度优先搜索1.在带权有向图中,称路径上第一个顶点为源点,最后一个顶点为终点Dijkstra算法:用来求某个源点到其余各顶点的最短路Floyd算法:用来求每一对顶点之间的最短路径Dijkstra算法一个按路径长度递增的次序产生最短路径的方法 需要引进一个辅助变量D,其每个分量D[i]表示当前所找到的从始点v到每个终点的最短路径的长度。 某一个点到其余各...原创 2019-08-03 21:45:23 · 378 阅读 · 0 评论 -
数据结构-查找(归并排序、快速排序、插入排序、冒泡排序、选择排序、堆排序,Python实现)
实现归并排序、快速排序、插入排序、冒泡排序、选择排序、堆排序目录(1)归并排序(2)快速排序(3)插入排序(4)冒泡排序(5)选择排序(6)堆排序参考:(1)归并排序归并排序英文名为MergeSort,是建立在归并操作上的一种有效的排序算法,该算法是采用分治法。其思想是先递归的把数组划分为两个子数组,一直递归到数组中只有一个元素,然后再调用函数把两个子数...原创 2019-05-18 17:51:11 · 366 阅读 · 0 评论 -
二叉树(插入、查找、删除、遍历)
实现一个二叉查找树,并且支持插入、删除、查找操作(1)定义或者初始化一个二叉树每一个节点包含一个值和其左子树右子树节点def __init__(self, r):#初始化 self.key = r self.leftchild = None self.rightchild = None(2)二叉树的查找找不到就返回Nonedef find(...原创 2019-05-22 11:40:11 · 817 阅读 · 0 评论 -
数据结构-链表(Python实现)
链式链表实现的基本模块是节点,节点有一个数据区(包含列表元素本身)和一个引用到下一项(1)定义一个链表节点class Node(object):#定义一个链表 def __init__(self,value): self.val = value self.next = None(2)初始化def __init__(self):#初始化,其...原创 2019-05-16 11:13:18 · 179 阅读 · 0 评论 -
数据结构-队列(Python实现)
队列的操作及实现(先进先出)队列操作 队列内容 返回值 is_empty() [] True insert(2) insert(5) insert(8) 2 2,5 2,5,8 pop() 5,8 2 size() 5,8 2 顺序队列(1)初...原创 2019-05-15 22:13:42 · 281 阅读 · 0 评论 -
堆排序
void adjust(vector<int> &arr, int len, int index){ // 递归方式构建大根堆(len是arr的长度,index是第一个非叶子节点的下标) int left = 2*index+1;// index的左子节点 int right = 2*index+2;// index的右子节点 int maxIdx = index; ...原创 2019-10-02 17:40:47 · 102 阅读 · 0 评论