算法与数据结构
哈皮慧帝
一个怀揣大大梦想的小小程序媛!
搬砖工地:互联网秃头大厂,大数据挖掘、NLP和图像算法应用研究流水线的安全工人。
展开
-
数据结构之树(2)
1. 用二叉树表示树和森林1.1 二叉树表示树使用“孩子——兄弟”存储结构将一棵树转换为二叉树。该二叉树的结点结构有3个域:1)数据域data,存放结点数据。2)左链域child, 指向该结点的第一个孩子结点。3)右链域brother,指向该结点的下一个兄弟结点。给定一棵树,有唯一的二叉树与之对应。根结点的右链域为空。1.2 二叉树表示森林转换过程为:1)将森林中的每棵树转换为二叉...原创 2018-04-03 16:26:46 · 232 阅读 · 0 评论 -
快速排序的递归实现
1.快速排序的思路1)在数组中选择一个数作为基准,为了避免性能恶化,可采用随机数来选择;2)把随机选择的基准数交换到第一个位置或者最后一个位置;3)顺序遍历数组,把小于基准数的放在基准的左边,大于基准数的放在基准数的右边,从而把数组分为两个子数组;4)分别对两个子数组重复步骤1-3,直到所有的元素都排好序;2.代码实现#include <iostream>#include<ra...原创 2018-05-15 10:42:20 · 405 阅读 · 0 评论 -
链表节点的增加和删除
链表是一种动态的数据结构,因为在创建链表时,不需要知道链表的长度,只需要对指针进行操作。1. 链表的定义struct ListNode{ int val; ListNode* next; ListNode(int x) : val(x), next(NULL){}};2. 在链表的末尾增加一个节点解决思路:分原来的链表是空链表和非空链表的情况;特别注意:函数的第一个...原创 2018-09-13 12:11:59 · 14342 阅读 · 2 评论