自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

皓月的博客

菜鸟的学习笔记

  • 博客(16)
  • 资源 (7)
  • 收藏
  • 关注

转载 稳定排序和不稳定排序

稳定排序和不稳定排序转自:    转自:http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html       这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是

2016-05-31 17:59:47 245

原创 二叉搜索树的查找、插入、删除操作

对于查找和插入操作相对来说比较简单,删除操作则需要考虑的情况较多。比如有以下些情况,可能有些可以合并,但是我没想到更好的方法,因此代码里有一堆if else,虽然我不喜欢写这样的代码,但也没找到更好的方法。1. 考虑是否是空树、或者需要删除的结点不在树中。2. 考虑整棵树只有一个结点,删除后需要修改入参,将整棵树置空。3. 考虑删除的结点是叶子结点。4. 待删除的结点只

2016-05-30 20:37:52 743

原创 大根堆的插入、删除、修改优先级实现

大根堆其实就是一个一维数组, 不过数组中数据的排列是基于完全二叉树模型的。根节点的数据大于等于左孩子和右孩子节点的数据,然后每个子树都和前面一样。它的主要应用是在优先级队列中, 因为大根堆或小根堆总是能很方便的找出最大的值或最小值,虽然有序的线性表一样可以实现该功能,但是有序线性表的致命缺陷在与入队时为了保持线性表仍是有序的,可能需要移动大量元素, 而大根堆和小根堆则相对有着更好的性能。

2016-05-26 14:22:23 6895 1

原创 二叉树的创建、销毁、各种递归、循环遍历方法(可运行测试)

因为二叉树的定义就是递归的, 所以二叉树、创建、销毁和各种遍历操作都使用递归的方法,会比较好理解。递归其实主要运用到了系统工作栈, 因此可以使用递归实现的,借助用户栈一般也可以实现, 本文中三种遍历方法都使用递归和循环两种方法实现。也可以使用队列来进行层序遍历。由此可见,队列和栈是两种很基础的工具,应该熟练掌握其使用方法。本文中的各种函数都可以输入不同二叉树来测试,唯一麻烦的一点的是输入树时需

2016-05-25 14:47:30 2398

原创 广义表的读取和输出,树的拷贝及比较的实现

1. 树采用链表的形式保存,每一个节点设计成一个数据域和n个指针域, n为树的度,为了方便固定为树的最大度,但是有点浪费空间。2. 实现的函数使用到栈来处理,遍历树时采用递归的方法。//tree.h#include #define DEGREE 3 typedef struct Node{    char ch;    struct Node * link[

2016-05-23 18:29:13 1343

原创 带头双向循环链表的插入和删除

typedef struct Element{    int elem;    /*other field*/}Element;typedef struct Node * NodePointer;struct Node {    Element data;    NodePointer llink;    NodePointer rlink;};

2016-05-21 16:07:22 1127

原创 带头循环单链表的基本操作

记录一下写过的代码://list.h#include //封装一个带头循环单链表typedef struct Element{    int data;    //other field} Element;typedef struct Node{    Element elem;    struct Node * link;}Node;

2016-05-20 17:15:30 437

原创 迷宫问题

想了很久, 终于做出来了, 不过数据结构的设计基本都是参照数据结构基础书上来的,如如何表示不同方向?怎么根据不同方向计算下一个位置的坐标等,数据结构设计的好做起来就相对会更方便。大致流程:1. 设计表示数据的结构。如迷宫可以用一个二维数组表示, 坐标也可以用二维数组表示, 移动的方向也可以用一个结构体表示,不同方向存在一个一维数组中, 这样设计的好处是方便计算下一个位置的坐标,以及遍历各个

2016-05-19 12:32:01 346

原创 用单链表实现双向队列

纯为了练习码代码, 熟悉一下链表的使用#include #include #define DQSIZE 10#define LEFT 0          //左边#define RIGHT 1      //右边typedef struct Element{    int key;    /*other field*/} Element;typ

2016-05-18 17:35:28 446

原创 循环队列

简单循环队列实现及测试#include #include #define QSIZE 10typedef struct Element{    int key;    /*other field*/} Element;typedef struct Queue{    Element elem[QSIZE];    int front;    

2016-05-18 12:07:56 257

原创 动态栈

一个简单例子, 记录一下学习过程。为了简单,就源码全放一个文件了#include #include #include #define CAP    10typedef struct Element {    int key;    /*other*/} Element;typedef struct Stack {    Element * pelem

2016-05-18 10:38:41 233

原创 hanoi汉诺塔问题的递归实现

#include void hanoi(int n, char a, char b, char c);//n 个盘子, 从A 移动到C, 借助Bchar ch[3] = {'A', 'B', 'C'};int main(){    int n;        printf("Enter a interger: ");    scanf("%d", &n);

2016-05-16 09:25:46 442

原创 powerset 幂集函数(组合问题)的递归实现

问题:如果一个集合为{A, B, C}那么他的幂集为{},A B C   A B     A C     A       B C     B       C , 如何用递归实现幂集函数 powerset?这个问题其实思路和 n 个布尔变量,求所有真值组合的问题思路类似,都可归类为组合问题。假设一个集合中有n 个元素{A, B, C ....}, 每个元素都有选中和不选中2中状态,我们可

2016-05-13 17:17:13 4057

转载 ackerman函数的循环实现

在网上看到了一些人在找这个Ackerman函数 ,不知道这个函数的实际含义,首先看到了他的递归形式:注释部分是分析后的结果.int rackerman(int m,int n){  if(m==0) return n+1; //更新n值,  else    if(n==0) return rackerman(m-1,1); //分析后要入栈一次, 同时n更新为 1 

2016-05-12 20:08:38 915

转载 假设有n个布尔变量x1, ..., xn,输出其所有可能的真值集合

例如,如果n=2, 有四种可能:, ,和。编写C语言函数实现之。分析:对于任意一个正整数n,所有可能的情况为2^n种,即n个2相乘。对于每一个元素,有两种可能:true或者false,我们可以将其中一种结果设定为一个长度为n的序列,在每一位上,它的值只能是true或false。可以用下面给出的简单算法来产生其所有可能的序列,即长度为n的序列由下列序列组成:(True,(n-1)序列所有结果),

2016-05-12 16:46:31 977 1

原创 选择排序法及时间测试

#include #include #include #include #define MAX 101void slct_sort(int list[], int n);void show_array(int list[], int n);int main(void){    int n;    int list[MAX];    int i; 

2016-05-12 14:42:00 536

汇编语言第三版

学习汇编语言入门首选,在X86平台下讲述16位汇编语言,如果有些基础1个月内估计就能学习完并较好掌握,当然这个只是入门,学习完这个还要继续学习其他平台或者32/64位的汇编。

2018-05-08

跟我一起写Makefile

讲解makefile比较好的中文版资料,内容相对比较全面。

2018-05-08

linux 设备驱动开发及参考代码

中文版,学习驱动开发必备,需要有具备一定的内核知识。

2018-05-01

Wireshark 数据包分析实战详解

Wireshark 数据包实战分析,Wireshark 数据包实战分析

2018-04-30

TCP-IP详解卷一:协议

虽然有点枯燥,但是是学习网络知识的基础,主要学习TCP,UDP,IP协议,其它协议可以先了解一下,需要用到的时候再有针对性的研究效果可能更好。

2018-04-30

算法导论中文版_原书第3版(带目录).pdf

学习数据结构的神器,数有点难,适合有一定基础的人读。

2018-04-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除