![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
虾米0105121
这个作者很懒,什么都没留下…
展开
-
c语言 二叉树基本操作
#include "BinTree.h"#include <assert.h>#include <malloc.h>#include <stdio.h>#include <string.h>#include "Queue.h"BTNode* BuyBinTeeNode(BTDataType data){ BTNode* pN...原创 2020-03-02 23:26:55 · 178 阅读 · 0 评论 -
递归详解
为什么你学不会递归?告别递归,谈谈我的一些经验来源:苦逼的码农可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了!可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用,有时候还容易被递归给搞晕。也有好几个人来问我有没有快速掌握递归的捷径啊。说实话,哪来那么多捷径啊,不过...原创 2019-11-13 17:53:35 · 154 阅读 · 0 评论 -
C语言循环队列
MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,返回 -1 。Rear: 获取队尾元素。如果队列为空,返回 -1 。enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。isEmpty(): 检查循环队列是否为空。isFull(): 检查循环队列是否已满。来源:力扣(LeetCode)链接:https://leetcode-cn.c原创 2019-11-13 16:25:40 · 444 阅读 · 0 评论 -
栈和队列
#pragma oncetypedef int SDataType;typedef struct Stack { SDataType* _array; int _capacity; int _size;}Stack;void StackInit(Stack* s);void StackPush(Stack* s,SDataType data);void StackPop(S...原创 2019-11-13 16:21:52 · 70 阅读 · 0 评论 -
带头双向循环链表
#pragma oncetypedef int DLDataType;typedef struct DListNode { struct DListNode* _pPre; struct DListNode* _pNext; DLDataType _data;}DLNode,*PDLNode;void DListInit(PDLNode* pHead);void DList...原创 2019-11-12 13:39:16 · 96 阅读 · 0 评论 -
c++实现堆排序 及二叉树操作
#include <iostream>using namespace std;#if 0// 所有排序:模板 + 仿函数void HeapAdjust(int* array, int size, int parent){ int child = parent * 2 + 1; while (child < size) { // 找左右孩子中较大的孩子 ...原创 2019-10-04 18:37:00 · 160 阅读 · 0 评论 -
c++实现常见排序算法
#include<iostream>using namespace std;#if 1void InsertSort(int* array, int size) { for (int i = 1;i < size;++i) { int key = array[i]; int end = i - 1; while (end >= 0&&ke...原创 2019-10-04 18:35:16 · 109 阅读 · 0 评论 -
c++链表任意位置的插入和删除
#include<iostream>#include<assert.h>using namespace std;struct ListNode{ ListNode(int data) :_pNext(nullptr) ,_data(data) {} ListNode* _pNext; int _data;};ListNode* FindListN...原创 2019-10-04 18:27:57 · 389 阅读 · 0 评论 -
c++实现 单链表的 反转、 拼接 、判环等操作
#include<iostream>#include<stack>struct ListNode { ListNode(int data) :_pNext(nullptr) , _data(data) {} ListNode* _pNext; int _data;};void PushBack(ListNode*& pHend, int...原创 2019-09-06 13:38:57 · 212 阅读 · 0 评论 -
堆的基本操作
1.堆得概念如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。2...原创 2019-06-25 23:24:47 · 111 阅读 · 0 评论 -
链表
什么是链表,链表的分类?链表是一种物理存储结构上非连续 非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表的分类多样,一下情况组合起来有8中结构1.单向 双向2.带头 不带头3.循环 非循环单链表的基本操作#pragma oncetypedef int SDataType;typedef struct SListNode{ SDataType _d...原创 2019-05-25 23:22:46 · 89 阅读 · 0 评论 -
顺序表
什么是线性结构?结构中的数据元素之间存在一个对一个的关系.线性结构中都包含什么内容?线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储...原创 2019-05-05 09:44:04 · 107 阅读 · 0 评论