随笔分类 -  算法及数据结构

摘要:#include int binary_search(int* arr,int len, int key) { int start = 0, mid = 0, end = len; while(start end) return start; int mid = (start + end) / 2; if(arr[mid] == key){ ... 阅读全文
posted @ 2018-05-17 10:08 CHRIS-ZSY 阅读(391) 评论(0) 推荐(0)
摘要:1 #include 2 3 typedef struct tagBinaryTree* Node; 4 typedef struct tagBinaryTree BinaryTree; 5 6 struct tagBinaryTree{ 7 int key; 8 Node lchild; 9 Node rchild; 10 ... 阅读全文
posted @ 2018-05-16 23:34 CHRIS-ZSY 阅读(399) 评论(0) 推荐(0)
摘要:简单的GCC语法: 如果你只有一个文件(或者只有几个文件),那么就可以不写Makefile文件(当然有Makefile更加方便),用gcc直接编译就行了。在这里我们只介绍几个我经常用的几个参数,第一是 “-o”,它后面的参数表示要输出的目标文件,再一个是 “-c”,表示仅编译(Compile),不连 阅读全文
posted @ 2016-12-16 16:04 CHRIS-ZSY 阅读(196) 评论(0) 推荐(0)
摘要:在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个ne 阅读全文
posted @ 2010-11-09 22:59 CHRIS-ZSY 阅读(71) 评论(0) 推荐(0)
摘要:指针是C和C++语言编程中最重要的概念之一,也是最容易产生困惑并导致程序出错的问题之一。利用指针编程可以表示各种数据结构, 通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯;并能像汇编[url=javascript:;]语言[/url]一样处理内存[地址从而编出精练而高效 阅读全文
posted @ 2010-11-09 22:53 CHRIS-ZSY 阅读(112) 评论(0) 推荐(0)
摘要:程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 7.1内存分配方式 内存分配方式有三种: (1) 从静态存储区域分配。内存在程序编译的时候就已经分配 阅读全文
posted @ 2010-11-09 22:50 CHRIS-ZSY 阅读(95) 评论(0) 推荐(0)
摘要:众所周知,C语言程序设计中,内存的分配和管理完全交由程序员来控制,因此,内存管理是每个C程序员必须熟练掌握的。 一般而言,分配给进程的内存有四个概念上不同的区域,分别为:代码段、数据段、堆和栈,其中数据段又可以细分为初始化为非零的数据和初始化为零的数据。如下图所示: | 程序栈 | 高地址--〉低地 阅读全文
posted @ 2010-11-09 22:49 CHRIS-ZSY 阅读(93) 评论(0) 推荐(0)
摘要:/* 文件名:communal.h 发布版本:0.12 发布时间:2003.12.16 */ #include <stdio.h> #include <string.h> char * strcpyx(const char *s1,char *s2,unsigned int StartPos,uns 阅读全文
posted @ 2010-11-09 22:48 CHRIS-ZSY 阅读(99) 评论(0) 推荐(0)
摘要:该实现使用大容量的静态数组作为堆,但也可使用操作系统调用分配堆。定义了一个数据类型Header保存每个存储器块的簿记信息,定义了具有Header类型元素的堆数组,这样就可以很容易地将簿记信息保存在存储器块中。类型Header包含了3块信息:指向列表的下一个块的指针,当前分配空间的长度,后面的自由空间 阅读全文
posted @ 2010-11-09 22:47 CHRIS-ZSY 阅读(95) 评论(0) 推荐(0)
摘要:/*略去信息头,#include文件和函数申明*/ ULONG32 g_outkey[16][2] = { 0};/*输出的key*/ ULONG32 g_bufkey[2] = { 0};/*形成起始密钥*/ /*实现时多采用查表方式,下面是定义的供查找用的表*/ static ULONG8 wz 阅读全文
posted @ 2010-11-09 22:44 CHRIS-ZSY 阅读(163) 评论(0) 推荐(0)