
数据与结构
ChengQianO
这个作者很懒,什么都没留下…
展开
-
二叉树算法题
二叉树的前序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: // vector<int> .原创 2020-06-23 20:56:59 · 279 阅读 · 0 评论 -
链表面试题总结
2.链表的逆置typedef struct ListNode ListNode;struct ListNode* reverseList(struct ListNode* head){ if(head == NULL) return NULL; ListNode* PreNode = NULL; ListNode* CurNode = head; L...原创 2019-11-24 11:16:45 · 189 阅读 · 0 评论 -
链式二叉树
#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef char BTDataType;typedef struct BTNode{ struct BTNode* _pLeft; struct BTNode* _pRight; BTDataType _da...原创 2019-06-20 11:12:15 · 161 阅读 · 0 评论 -
树及二叉树的基本概念
掌握树的基本概念掌握树的相关概念掌握树的表示方式熟悉二叉树的基本概念以及特性5.熟悉完全二叉树以及满二叉树的概念熟悉二叉树的性质:1 2 3 4 5熟悉二叉树的存储方式写博客对本节内容进行总结。...原创 2019-06-20 11:04:51 · 378 阅读 · 0 评论 -
栈模拟队列
栈模拟队列栈的特点:先进后出队列的特点:先进先出利用栈和队列的特点进行模拟,如下图所示:主要思想:使用两个栈,第一次向其中一个压入数据,每次要出数据将存数据的栈出到另外一个栈中,留下最后一个数据,将这个数据最终出栈,从而实现栈模拟队列。(注:注定有一个栈为空,每次入数据入到有数据的栈中)实现#pragma once#include"Queue.h"typedef int Que...原创 2019-06-19 15:03:40 · 1411 阅读 · 0 评论 -
队列模拟栈
队列模拟栈栈的特点:先进后出队列的特点:先进先出利用栈和队列的特点进行模拟,如下图所示:主要思想:使用两个队列,第一次向其中一个压入数据,每次要出数据将存数据的队列出到另外一个队列中,留下最后一个数据,将这个数据最终出队列,从而实现队列模拟栈。(注:注定有一个队列为空,每次入数据入到有数据的队列中)实现Queue.h文件源码:https://blog.youkuaiyun.com/a331683...原创 2019-06-19 15:18:20 · 1622 阅读 · 0 评论 -
二叉树大(小)堆以及堆排序
#pragma once#include "assert.h"#include <stdio.h>#include<stdlib.h>typedef int HPDataType;typedef struct Heap{ HPDataType* _array; int _capacity; int _size;};// 用数组初始化堆 void ...原创 2019-05-25 23:53:32 · 446 阅读 · 0 评论 -
不带头结点的单向链表实现
一. 什么是链表,链表的分类?链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。分类:2. 熟悉链表带头结点和不带头结点的区别? (后面解释)3. 完成单链表的以下基本操作:...原创 2019-04-27 17:45:09 · 1497 阅读 · 0 评论 -
动态顺序表
什么是顺序表?顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组 上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储。动态顺序表:使用动态开辟的数组存储静态顺序表一般指的是存储的个数是固定的:struct SeqList{ DataType _array[MAX_CAPACITY]; int _size;}...原创 2019-04-23 15:48:08 · 339 阅读 · 0 评论 -
栈和队列的实现
1. 什么是栈,栈有什么特性?栈是一种数据结构,说通俗点有点像是一个大袋子,所以它的特性是先入后出,先放进去的数据要等上面的数据取完后才能输出。每次输出的都是最后入进去的数据,同时不能对栈进行随机中间访问和中间插入和删除。2.栈和栈区的区别是什么?栈区是内存划分的一块空间,是为存储数据的,而栈是一种数据结构格式。3. 为什么将递归程序转化成循环时需要用到栈?因为递归程序的运行过程和栈非常...原创 2019-05-15 20:26:09 · 413 阅读 · 0 评论 -
空间复杂度,时间复杂度。
时间复杂度 1. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n)) 分析:随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。 2. 在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n) 的同数...原创 2018-03-24 22:12:45 · 319 阅读 · 0 评论