数据结构
ma_r
这个作者很懒,什么都没留下…
展开
-
链表分割、删除重复结点、回文、相交链表、环形链表OJ
链表分割:链接: link.编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。/*struct ListNode { int val; struct ListNode *next; ListNode(in...原创 2019-04-28 23:18:24 · 236 阅读 · 0 评论 -
数据结构:复制带随机指针的链表
思考:1.不能使用值找random(1->2->1->3结果可能出错)2.不能使用地址查找(复制之后地址不同)3.可以使用相对位置(较麻烦,单向不循环链表2找1不容易)解题思路:1.在每个节点之后拷贝(1->1->2->2->3->3->4->4->)2. 拷贝的random在random之后(除了空)3. 拆分两个...原创 2019-05-08 11:54:43 · 102 阅读 · 0 评论 -
数据结构:平衡二叉树(时间复杂度O(N)解法)
平衡二叉树:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1时间复杂度O(N^2)/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */...原创 2019-05-08 20:18:45 · 8406 阅读 · 1 评论 -
数据结构:二叉树前中后序遍历(递归)
二叉树遍历将其看做根,左子树,右子树三部分,其中前序遍历是根,左,右;中序为左、根、右;后序为左、右、根。简单来说根的位置在哪就是什么序。前序遍历:ABDCEF struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; };/*** Note: The r...原创 2019-05-07 19:24:36 · 287 阅读 · 0 评论 -
数据结构:根据二叉树创建字符串
采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *lef...原创 2019-05-10 22:34:21 · 267 阅读 · 0 评论 -
数据结构:二叉搜索树转换为双向链表(不创建新节点)
解题思路:left是链表的next;right是链表的prev;根据转换指针调整方向;/*struct TreeNode { int val; struct TreeNode *left;//prev struct TreeNode *right;//next TreeNode(int x) : val(x), left(NULL), right(NULL) { }...原创 2019-05-11 21:24:20 · 165 阅读 · 0 评论 -
【数据结构】Queue实现(代码)
队列:(先进先出)是一种特殊的线性表,特殊之处在于:它只允许在表的前端进行删除操作,只允许在表的后端进行插入操作;队列是一种操作受限制的线性表;进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。入队与出队:在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。头文件:Queue.h#include <stdio.h>#incl...原创 2019-07-09 12:44:45 · 359 阅读 · 0 评论 -
【数据结构】栈的实现(代码)
栈是限定仅在表尾进行插入和删除操作的线性表,先进后出。头文件stack.h#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef struct TreeNode* STDataType;typedef struct Stack{ STDataType* _a; size_...原创 2019-07-10 17:05:54 · 866 阅读 · 0 评论 -
【数据结构】堆的实现(heap)
堆分为两种:最大堆和最小堆最大堆:父节点的值比每一个子节点的值都要大。最小堆,父节点的值比每一个子节点的值都要小。heap实现:heap.h#include <stdio.h>#include <time.h>#include <stdlib.h>#include <assert.h>#include <string.h>...原创 2019-07-11 11:48:10 · 151 阅读 · 0 评论