自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shayabean->MyBlog

Talk is cheap, show me your code.

  • 博客(17)
  • 收藏
  • 关注

原创 快排

对于非内部数据类型的对象(在这里指的是string)而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。所以这里(详情见实现文件)(要使用new,而不是malloc

2015-07-23 23:55:23 698

原创 哈希表

头文件:#ifndef HASHTABLE_H#define HASHTABLE_Htypedef int ElemType; //这里的ElemType只能为int,因为选取的散列函数为取模typedef struct{ ElemType * elemArray; int maxsize; int size;}HashTable;void InitHash(HashTab

2015-07-23 23:51:00 396

原创 二叉堆

二叉堆:性质为任意一个节点若其右儿子,则其儿子必均大于或小于该节点。(对于同一个堆,大则都大,小则都小,分别称为大根堆,小根堆)堆的几本操作包括插入和删除。插入:先假设将新节点插在整个堆(树)的末尾,然后比较其与其父节点的大小,对于小根堆来说,若其小于其根,则其交换其与根的位置。以新节点当前位置为初始位置,继续比较其与其新根大小,直到其小于其根为止。(整个过程被称为上滤)删除:首先删除

2015-07-23 22:46:33 744

原创 赫夫曼树编码实现

赫夫曼编码实现包括以下几个功能:(1) 初始化。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree.txt中。(2) 编码。利用已建好的哈夫曼树,对文件ToBeTra.txt中的正文进行编码,然后将结果存入文件CodeFil.txt中。(3) 译码。利用已建好的哈夫曼树将文件CodeFile.txt中的代码进行译码,结果存入文件Textfile.

2015-07-23 22:25:45 1249

原创 图的邻接表表示法及深度搜索与广度搜索

图的深度搜索类似于树的先序遍历,稍微修改即可利用递归实现。图的广度搜索类似于树的层序遍历,根据数据出入的特性,可以采用队列来实现。队列不使用容器,而采用之前自己写过的队列稍加修改后来使用。所以文件一共有五个,包括图头文件,图实现文件,队列头文件,队列实现文件,主函数文件。队列头文件:#ifndef MYQUEUE_H_ #define MYQUEUE_H_ #define

2015-07-23 22:10:25 845

原创 AVL树C语言实现

#ifndef AVLTREE_H_#define AVLTREE_H_#define FLOWOVER -1struct AVLTreeADT;typedef struct AVLTreeADT * AVLTree;//根指针,与节点指针本质一样typedef struct AVLTreeADT * AVLNode;//节点指针typedef int ElemType;//数据域

2015-05-20 20:59:03 636

原创 二叉查找树(C语言实现 )

二叉查找树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉查找树。在使用递归的时候,假如函数有返回值,记得接收返回值,并且保证函数在每个板块结束后都有return,以防出错。具体见Find、Insert、Delete等函数的实现过程。Find:通过比较根数据域的值和输入参数的大小递归调用

2015-05-18 19:01:20 511

原创 十字链表实现矩阵

十字链表实现矩阵的加减乘转置

2015-04-29 16:46:36 1069

原创 迷宫求解_栈的应用

#ifndef STACK_FOR_MAZE_H#define STACK_FOR_MAZE_H #include struct Node;typedef struct Node * Stack; //用于声明指向表头的指针 typedef struct Node * PtrToNode; //用于声明指向结构体(节点)的指针 typedef int ElementT

2015-04-25 12:27:55 531

原创 串,包括KMP算法(C/C++)

串结构,包括KMP算法

2015-04-24 19:31:39 753

原创 char字符串细节

由char * 定义的字符串,再被赋值以后,就只能读取而不能赋值

2015-04-21 20:00:18 474

原创 基数排序单链表实现(C语言)

头文件:/*基数排序,单链表实现*/#ifndef RADIX_SORT_H#define RADIX_SORT_H#include #define FLOWOVER -1#define LIST_EMPTY -2struct RadixSort;typedef struct RadixSort * List;typedef struct RadixSort * Node;

2015-04-05 09:59:18 3938

原创 以循环顺序表实现的队列ADT(C语言版)

分为三个文件,分别为头文件,实现文件,测试文件。//约定初始化时rear与front均为0,元素增加一个时,rear++,减少一个是front++//在结构体中添加变量length,以length = 0表示队列为空//引入辅助函数MyAdd()以处理下标循环的问题 头文件:#ifndef MYQUEUE_H_#define MYQUEUE_H_#def

2015-03-27 19:55:44 1129

转载 malloc()与 alloc()区别 (转)

malloc()与 alloc()C语言跟内存分配方式(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存

2015-03-27 19:08:32 448

原创 new/delete相关应用及注意事项

一、应用格式:type_name * pointer_name = new type_name [num_elements];delete [] pointer_name;    //[]加不加取决于new有没有用[],两者必须对应。tips:1、delete仅仅释放指针指向的内存,而不删除指针本身。2、注意覆盖与新建的区别,代码如下:#incl

2015-03-23 10:02:00 372

原创 含表头的链表ADT(C语言版)

表头L为指针,指向一个结构体,L->next表示L指向的结构体中的结构的next域,这个next存储的是链表第一个节点的地址,所以L->next表示链表第一个节点的地址,所以L->next->element表示链表第一个节点element域中的值。当表头L(指针)作为自定义函数参数传入时,L是作为一个临时变量存在的,所以对L进行的操作,并不改变表头的地址本身。但是当L->next作为左值出

2015-03-22 23:18:34 738

原创 含表头的栈ADT(C语言版)

表头S为指针,指向一个结构体,S->next表示S指向的结构体中的结构的next域,这个next存储的是栈顶的地址,所以S->next表示栈顶地址,所以S->next->element表示栈顶的元素中的值。具体代码如下:#ifndef MYSTACK_H_#define MYSTACK_H_#include #include #include struct Node;type

2015-03-22 22:28:41 794

空空如也

空空如也

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

TA关注的人

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