数据结构
文章平均质量分 64
只要代码敲得好,BUG就追不到我
让世界变得更美好
https://github.com/liusenlindegithub
展开
-
二叉树(理论篇)
二叉树: 二叉树是每个节点最多有两个子树的树结构1.二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),2.二叉树的子树有左右之分,次序不能颠倒。3.二叉树的第i层至多有2^(i-1)个结点;深度为k的二叉树至多有2^k-1个结点;4.对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。满二叉原创 2016-08-01 21:34:29 · 1033 阅读 · 0 评论 -
递归再谈
#include<stdio.h>void up_and_down(int);int main(void){ up_and_down(1); return 0;}void up_and_down(int n){ printf("time %d:n location %p/n",n,&n);//1 printf("\n"); if(n<4) up_and_down原创 2016-07-18 12:14:15 · 756 阅读 · 0 评论 -
哈夫曼树(理论篇)
与哈夫曼树有关的概念: 路径: 树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 路径长度:路径上的分枝数目称作路径长度。 树的路径长度:从树根到每一个结点的路径长度之和。 结点的带权路径长度:在一棵树中,如果其结点上附带有一个权值,通常把该结点的路径长度与该结点上的权值原创 2016-08-02 11:50:22 · 1549 阅读 · 0 评论 -
树(理论篇)
节点的度: 一个节点含有的子树的个数称为该节点的度双亲节点或父节点: 若一个节点含有子节点,则这个节点称为其子节点的父节点孩子节点或子节点: 一个节点含有的子树的根节点称为该节点的子节点兄弟节点: 具有相同父节点的节点互称为兄弟节点树的度: 一棵树中,最大的节点的原创 2016-08-01 17:44:54 · 571 阅读 · 0 评论 -
算法空间复杂度
空间复杂度(Space Complexity) 是对一个算法在运行过程中临时占用存储空间大小的量度。 比如插入排序的时间复杂度是O(n^2),空间复杂度是O(n) 而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息 一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。 类似于时间复杂度的讨论原创 2016-07-21 16:27:40 · 1130 阅读 · 1 评论 -
如何计算程序时间复杂度(实战篇)
概念: 1.一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。 一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 2.一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n))。随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(原创 2016-07-21 12:34:36 · 4284 阅读 · 0 评论 -
判断两链表是否相交
1.判断链表带不带环 2.如果都不带环,就判断尾节点是否相等 3.如果都带环,判断一条链表上两指针相遇的那个节点, 在不在另一条链表上,如果在,则相交,如果不在,则不相交那么如何判断是否带环? 设置两个指针 p1 、p2 开始都指向链表的头, p2 每次移动两步 p1每次移动一步,如果存在环,则他们必在环中相遇#include<iostream>#include<s原创 2016-07-31 21:42:54 · 642 阅读 · 0 评论 -
求链表倒数第k个节点
公共头文件unp.h#include<unistd.h>#include<stdio.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<pthread.h>#define SERVER_IP "127.0.0.1"#define SERVER_P原创 2016-07-31 12:39:53 · 513 阅读 · 0 评论 -
关键字sizeof()小结
注意: cout << sizeof(&str)<#include<iostream>#include<stdio.h>using namespace std;void fun (int str[10]) { cout << sizeof(str)<<endl; //4 数组名当为形参传递时,相当指向原创 2016-06-21 23:57:14 · 598 阅读 · 0 评论 -
带头节点单链表的实现
心得体会:单链表是一种 链式存取 的数据结构,用一组物理地址任意的存储单元存放线性表中的数据元素。 存储:1.逻辑存储 2.物理存储 思维角度:1.逻辑线性结构 一对一 2.逻辑非线性结构原创 2015-12-24 21:47:06 · 806 阅读 · 0 评论 -
带头节点控制单链表之C语言实现
// 1.头、尾节点位置// 2.链表// 元素数量#include #include #include #include //链表节点信息://// 1.数据域// 2.指针域#define TRUE (1)#define FALSE (0)#define ZERO (0)#define原创 2016-05-08 22:52:32 · 865 阅读 · 0 评论