数据结构
indomitable@I
踏着层层阶梯攀登
展开
-
【数据结构】有关排序算法的整理
排序排序的概念排序算法实现、复杂度及稳定性分析1.插入排序2.希尔排序排序的概念排序:就是一串数按照递增或递减的顺序排列稳定性:排序后两个数字的相对次序保持不变,则这种排序是稳定的,否则不稳定举个例子:内部排序和外部排序内部排序:数据元素全部放在内存中的排序外部排序:数据元素太多不能同时放在内存中,且排序过程不能在内外存之间移动的顺序排序算法实现、复杂度及稳定性分析1.插入排...原创 2020-04-06 13:59:45 · 193 阅读 · 0 评论 -
【数据结构】 二叉树的链式结构
二叉树的链式结构1. 二叉树的概念及结构2. 二叉树的存储结构3. 二叉链式结构的实现3.1三种递归遍历二叉树3.2二叉树的基本实现1. 二叉树的概念及结构概念:1.可以是空树2.当不是空树时,由根节点+根节点的左子树+根节点的右子树组成(根节点的左右子树也是二叉树)特点:1.每个结点最多有两棵树2.左右子树不能颠倒(必须是有序的)结构(5种情况)特殊二叉树-----满二叉树和...原创 2020-03-31 15:06:06 · 1729 阅读 · 0 评论 -
【数据结构】关于堆的基本操作
堆是一颗完全二叉树,所有元素是按照完全二叉树的顺序存储方式放在一个数组,堆中每个结点都比其孩子结点小(大),叫小(大)堆所以,堆的底层是按数组方式来存储,数组元素可能有序,可能无序,但堆中元素是有顺序的,要么是小堆,要么是大堆。下图是数组对应的完全二叉树,但还不是堆,所以在创建堆时,需要对数组进行向下调整,建成小堆或大堆建堆(这里我建的小堆)如果从第一个节点调整,不能保证向下调整后,堆...原创 2020-03-27 23:08:55 · 301 阅读 · 0 评论 -
leetcode---用栈实现队列、用队列实现栈(栈和队列的习题)
用队列实现栈使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空class MyStack {public: MyStack() {} void push(int x) //放入元素 { if (!q1.empty()) q1.push(x); else q2.pu...原创 2020-03-20 00:15:54 · 445 阅读 · 0 评论 -
数据结构---移除链表中值为val的元素
通过一个指针去遍历链表,找到值位val的节点原创 2020-03-12 22:23:52 · 533 阅读 · 0 评论 -
牛客网---链表中倒数第K个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。思路1:(效率慢)可以先遍历求出链表中有多少个结点,第二次再从前往后走,让count–,直到count=k,则找到了该结点。class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { unsigned count = 0...原创 2020-03-09 11:43:18 · 110 阅读 · 0 评论 -
数据结构---不带头结点的单项非循环链表
如果对元素进行大量的任意位置添加或删除,在顺序表里就要移动很多的元素,(底层空间是连续的)效率很低,所以可以利用链表这个结构链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的链接次序实现的找到第一个节点,就可以通过链式结构找到下一个节点链表:1.单链表(从前往后)、双链表()2.带头(把第一个节点保存起来、不带头()3.循环、非循环...原创 2020-03-03 19:56:52 · 307 阅读 · 0 评论 -
用类和模板实现的顺序表
#include<iostream>#include<assert.h>using namespace std;原创 2020-02-11 20:51:48 · 254 阅读 · 0 评论 -
C语言实现顺序表
顺序表是用用一段物理地址连续的存储单元一次存储数据元素的线性结构,一般情况下采用数组存储顺序表分为:静态顺序表(使用地工厂数组存储),动态顺序表(使用动态开辟的数组存储)下面实现的是动态顺序表:C语言中没有这种结构,所以把它们封装成一个结构体,里面有不同类型的元素(数组、有效元素个数、数组总容量),便于管理typedef int DataType;//给类型取别名 数组元素类型就很好变...原创 2019-12-30 13:20:50 · 169 阅读 · 0 评论