![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Strivee_
厚积薄发,天助自助者也!
Stay hungry,stay young!
展开
-
数据结构----排序(选择排序)
选择排序——排序算法的一种。默认的排序为从小到大排序。基本思路:从n个关键字序列中找到一个最小值,并把它放到序列首端,再从剩下的n-1个关键字中选择最小值,仍然放到这n-1个关键字的序列首端,以此类推。简单选择排序:给出一组序列 4 1 2 5 3,对其进行简单选择排序的过程如下:4 1 2 5 31 4 2 5 31 2 4 5 31 2 3 5 41 ...原创 2018-03-27 03:15:15 · 431 阅读 · 0 评论 -
线索二叉树中序遍历,二叉树的反转输出
#include<iostream> using namespace std; typedef char ElemType; #define END '#' typedef enum { LINK = 0, THREAD = 1 }PointerTag; typedef struct BiThrNode //定义二叉树节点 { BiThrNode *leftchild; ...原创 2019-01-19 16:23:17 · 245 阅读 · 0 评论 -
【面试题】二叉树相关操作(判满,是否为完全二叉树,输出层数,输出深度,输出父节点,二个二叉树是否相等)
#include <iostream> #include <queue> using namespace std; typedef char ElemType; typedef struct BtNode //定义二叉树节点 { BtNode *leftchild; BtNode *rightchild; ElemType data; }BtNode, ...原创 2019-01-19 16:21:53 · 298 阅读 · 0 评论 -
前序,中序,后序遍历二叉树的非递归的实现
#include <iostream> #include <stack> using namespace std; typedef char ElemType; typedef struct BtNode //定义二叉树节点 { BtNode *leftchild; BtNode *rightchild; ElemType data; }BtNode, ...原创 2019-01-19 09:24:11 · 143 阅读 · 0 评论 -
线性表,栈,队列和排序考试
1. 下列哪种排序算法是不稳定的算法()(多选) A 归并排序 B 插入排序 C 堆排序 D 快速排序 2. 下列关键字序列为堆的是() A 100,60,70,50,32,65 B 60,70,65,50,32,100 C 65,100,70,32,50,60 D 70,65,100,...原创 2019-01-18 18:30:25 · 565 阅读 · 0 评论 -
分别用先序、中序、后序遍历二叉树(递归实现)
#include <iostream> #include <vector> #include <algorithm> using namespace std; 遍历二叉树算法 typedef char ElemType; typedef struct BtNode //定义二叉树的结点 { BtNode *leftchild; BtNode ...原创 2019-01-12 12:45:19 · 737 阅读 · 0 评论 -
数据结构----双向链表
DoubleList.h #ifndef __DOUBLELIST_H #define __DOUBLELIST_H #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<malloc.h> typedef int ElemType; //定义每一个结点的结构 ty...原创 2018-10-25 22:30:47 · 130 阅读 · 0 评论 -
数据结构----双向循环链表
CycDoubleList.h #ifndef __CYCDOUBLELISH_H #define __CYCDOUBLELISH_H #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<assert.h> typedef int ElemType; //定义双向...原创 2018-10-25 21:51:52 · 124 阅读 · 0 评论 -
数据结构----循环链表
CycLinkList.h #ifndef __CYCLINKLIST_H #define __CYCLINKLIST_H #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<malloc.h> typedef int ElemType; typedef str...原创 2018-10-25 21:24:56 · 131 阅读 · 0 评论 -
数据结构----栈与队列的相互转化(详通过栈实现一个队列)
两个栈实现一个队列 定义两个栈A、B实现一个队列先进先出的特点。 栈的特点:先进后出 队的特点:先进先出 需要注意的条件有: 1、队列满的条件 A满,B非空 2、队列空的条件 A空,B空 3、入队列,队列非满的条件 (1)A非满 (2)A满,B空(将A中的数据全部导入到B中) 4、出队列,队列非空的条件 (1)B中有数据 (2)A非空,B空(将A中的数据全部导入到B中)...原创 2018-10-20 20:20:17 · 205 阅读 · 0 评论 -
数据结构----单链表
数据结构:将数据组织在内存中的一种形式。 一、线性存储 特点:除了第一个没有前驱,最后一个没有后继,其他的结点都只有一个前驱和一个后继。 线存储分为顺序存储,链式存储。 顺序存储:在内存中连续的存储空间。如:顺序表。 链式存储:元素在内存中的位置并不连续。如:单链表,双向链表。 二、非线性存储 图:一个数据可能有n个后继,有m个前驱。 树:有一个前驱,n个后继。 二叉...原创 2018-10-13 23:27:33 · 197 阅读 · 0 评论 -
数据结构----C语言八种排序算法(冒泡排序,选择排序,直接插入排序,希尔排序,快速排序,堆排序,二路归并排序,基数排序)
一、冒泡排序 思路:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两记录交换,然后比较第二个记录和第三个记录的关键字,依次类推,直到第n-1个记录和第n个记录的关键字比较完毕为止。此过程为第一趟冒泡排序,结果使得最大的关键字被放置到最后一个记录的位置上。 ...原创 2018-10-13 21:52:47 · 2943 阅读 · 1 评论 -
海量数据处理的相关问题整理
一、海量日志数据,如何提取出某日访问百度次数最多的那个IP? 答:分而治之 + hash映射 + 排序算法 IP地址最多有2^32=4G种取值情况。可以采用“分而治之”的思想,首先利用哈希方法将所有IP地址对1024取余(ip%1024),得到1024个4MB的IP地址。 对于每个小文件构建一个ip为key,出现次数为value的hash map(ip->key、hash map...原创 2019-09-21 13:47:54 · 229 阅读 · 0 评论