
数据结构
L公子
这个作者很懒,什么都没留下…
展开
-
链表面试题
链表面试试题1:编写一个程序,找到两个单链表相交的起始节点/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */typedef struct ListNode Node;struct ListNode *get...原创 2019-08-26 16:35:21 · 220 阅读 · 0 评论 -
数据结构-树的总结
数据结构-树的总结1 : 定义:树是包含n(n>=0)个结点的有穷集,其中:(1):每个元素称为结点(node);(2):有一个特定的节点被称为根结点或树根(root);(3):除根结点以外的其余数据元素被分为m(m>=0)个互不相交的集合T1,T2…Tm-1 ,其中每一个集合mi(1=<i<=m)本身也是一棵树,被称为原树的子树。单个结点也是一棵树,树根就是...转载 2019-07-24 00:10:51 · 355 阅读 · 0 评论 -
二叉树前序 中序 后序 递归算法以及非递归算法
二叉树前序 中序 后序 递归算法以及非递归算法一:递归算法`#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef struct Node { char value; struct Node* left; struct Node* right;}Node;//前序void p...原创 2019-07-17 15:55:22 · 627 阅读 · 0 评论 -
数据结构排序-总结
数据结构排序总结一:排序的基本概念:假设含有n个记录的序列为{r1,r2,r3…rn},其相应的关键字为{k1,k2, k3,…kn},需确定1,2,3…n的一种排列p1,p2,…pn使其相应的关键字满足kp1<=kp2<=kp3<=…kpn非递减(或非递增)关系,及时的序列称为一个按关键字有序的序列{rp1,rp2,rp3…rpn},这样的操作就称为排序。二:排序的分...原创 2019-07-20 15:53:08 · 452 阅读 · 0 评论 -
数据结构-堆
数据结构-堆1: 堆的概念以及特性堆是一种数组对象,它可以被视为一科完全二叉树结构。它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。2:数据结构堆与内存堆区的区别1):数据结构中的栈与堆数据结构中的堆与栈是两种不同的数据结构,两者都是数据项按序排列的数据结构。栈:像是装数据的桶或者箱子栈是一种...原创 2019-07-22 17:08:03 · 362 阅读 · 0 评论 -
链表的基本操作
链表的基本操作一:链表的概念链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表上的指针链接次序实现的。链表由一系列结点(链表中的每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。二:链表的种类实际中链表多种多样,以下情况组合起来就有八种:1:单链表,双向链表2:带头,不带头...原创 2019-08-24 17:46:21 · 212 阅读 · 0 评论 -
栈与队列的实现
栈和队列一:栈1:栈的概念栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈中的元素遵守先进后出的原则。2:栈的基本操作push 向栈底添加元素pop 从栈顶取出元素size 判断栈中元素个数Empty 判断栈是否为空top 返回栈顶元素3:代码实现用链表实现栈#defi...原创 2019-08-22 18:19:50 · 287 阅读 · 0 评论 -
时间空间复杂度分析
时间空间复杂度一:时间复杂度1:什么是时间复杂度?算法的时间复杂度是一个函数,它定性的描述了该算法的运行时间,一个算法执行所消耗的时间。一个算法所花费的时间与其中语句的执行次数成正比,算法中基本操作的执行次数,为算法的时间复杂度。2:时间复杂度为什么看的是最差情况?理由如下:最坏时间复杂度,实在任意输入下的运行时间界限,保证算法任何时候的运行时间都不会比它长。在某些情况下,最坏情况...原创 2019-08-31 14:17:44 · 429 阅读 · 0 评论