volcanol的工控博客
Email : lilinly225@126.com 索要资料加QQ 点击进入 或 点击左侧的资料分享专用帖

volcanol ---- View OF Linux Can Appreciate Nature OF Linux

天行健,君子以自强不息

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  Algorithm_Data_Struct

算法和数据结构
摘要:没什么新的内容,把自己写的练习代码贴出来,供大家批判。 阅读全文
posted @ 2017-06-19 10:52 volcanol 阅读(353) 评论(0) 推荐(0)

摘要:最近学习要用到求绝对值函数,看了一下有很多种的abs函数,因此想自己实现这些代码。下面是我进行测试的代码:#include typedef unsigned int U32,u32;typedef enum {FALSE,TRUE} BOOL;//求绝对值函数float fabsf(float x) { //这里可以看到浮点数和整数在计算机中的表达方式不一样 //下面的这种方法,不能用于整数 U32* p; p=(U32 *)&x; *p=*p & 0x7FFFFFFF; return x;}int abs(int x) { //负数的补码=反码+... 阅读全文
posted @ 2013-10-08 13:55 volcanol 阅读(952) 评论(1) 推荐(0)

摘要:【1】main.c/****************************************************** 把整数按照进制数转换为相应进制的字符串*(要考虑符号),比如 -1234,转换为 “-1234”。* *****************************************************/#include #include #define BUF_LEN 12//将数字转换成十进制子函数void iToDecCh(int iNum,char *p);//字符串倒置函数void strReverse(char* str);/* ... 阅读全文
posted @ 2013-10-05 19:09 volcanol 阅读(1621) 评论(2) 推荐(0)

摘要:/**///******************************************************0/*函数功能: 判断字符串subString是否是字符串String从首字符开始的子串函数原型: BOOL SubStringMatchHead(char* String,char* subString)函数参数: char* String:字符串 char* subString:子字符串返回值: 如果是,则返回TRUE,否则返回FALSE异常: 无*/BOOL SubStringMatchHead(char* String,char*... 阅读全文
posted @ 2013-09-29 13:36 volcanol 阅读(415) 评论(0) 推荐(0)

摘要:前面贴了一段关于队列的源代码,也许细心的朋友会发现,其实那段代码存在一定的问题。就是最后如果出队后front指向队列尾部的时候;会出现异常。因此为了能够使用队列,则需要进行修改源代码。/** 本程序测试线性数据结构:队列*/#include <stdio.h>#include <stdlib.h>//***************************************0// 定义数据类型struct queueNode{ //如果rear ==-1 and front ==-1 则表示队列不存在 //队列不存在不能进行队列的任何操作 int* que... 阅读全文
posted @ 2013-04-27 13:59 volcanol 阅读(313) 评论(0) 推荐(0)

摘要:其实,模式匹配的穷举法也可以改进,下面是经过改进后的代码。【Improve Version】 其中StrMatchImp()函数是经过改进后的函数。/* 本程序测试字符串的各种处理函数和操作*/#include <stdio.h>#include <stdlib.h>#include <string.h>//******************************************************0// 定义用户数据类型typedef long int LINT;typedef enum {FALSE,TRUE} BOOL;//****** 阅读全文
posted @ 2013-04-26 11:42 volcanol 阅读(368) 评论(0) 推荐(0)

摘要:发现国内没有好的关于字符串处理的书籍,找了好久没有找到,不知道哪位大侠能介绍一本中文版的,英语的看的速度太慢。下面是我测试的字符串模式匹配源代码【Version 1】 这个测试的时候,受北大那个视屏的影响,这个调试了老久没成功。最终虽然也能运行了,但是感觉怪怪的。/* 本程序测试字符串的各种处理函数和操作*/#include <stdio.h>#include <stdlib.h>#include <string.h>//******************************************************0// 定义用户数据类型ty. 阅读全文
posted @ 2013-04-25 21:35 volcanol 阅读(336) 评论(0) 推荐(0)

摘要:双链表与单链表的操作在很多地方都能用到。 循环链表的话,特殊应用也能用到,既可以用单链表实现循环列表,也能用双链表实现循环列表,用单链表节省存储空间,但是运算逻辑相对双链表要复杂,这就是通常说的以时间换空间。 单对时间要求严格时候也可:以空间换时间。 循环列表的代码不打算在园子里贴出来了,实现过程中需要注意的是:虽然头节点在建立循环链表之后,任何一个都可以看成是头节点,但是还是以创建时分配的第一个节点为宜,因为这样不会随时随地的找头节点,同时要注意的是:单节点的时候,需要自己指向自己以符合循环链表的定义,这个容易忽略。 下面是双链表的代码,运行测试结果在代码下面:/* 本程序用... 阅读全文
posted @ 2013-04-21 20:24 volcanol 阅读(293) 评论(0) 推荐(0)

摘要:/* 本程序用来测试线性存储结构:链表*/#include <stdio.h>#include <stdlib.h>//*************************************************// 定义处理字符的链表数据类型struct singlelink{ short int data; struct singlelink* next;};//单链表struct doublelink{ int data; struct doublelink* prenode; struct doublelink* postno... 阅读全文
posted @ 2013-04-21 12:52 volcanol 阅读(344) 评论(0) 推荐(0)

摘要:程序代码编译可以通,未进行运行时测试。 /* 本程序测试线性逻辑结构:队列*/#include <stdio.h>#include <stdlib.h>struct queuelist{ int* queue; int front; int rear; int size;};typedef struct queuelist QUEUE;typedef enum {FALSE,TRUE} BOOL;void CreateQueue(QUEUE* queue,int size);BOOL IsQueueEmpty(QUEUE* queue);BOOL Is... 阅读全文
posted @ 2013-04-20 21:26 volcanol 阅读(382) 评论(0) 推荐(0)

摘要:程序代码可以编译通过,未用数据进行测试。 /* 本程序测试线性数据结构:栈*/#include <stdio.h>#include <stdlib.h>struct StackNode{ int* stack; int Top; //从1开始计数 int Size;};typedef struct StackNode STACK;typedef enum {FALSE,TRUE} BOOL;void CreateStack(STACK* stack,int size);void InitStack(STACK* stack);BOOL IsStackEmpty... 阅读全文
posted @ 2013-04-20 17:55 volcanol 阅读(312) 评论(0) 推荐(0)

摘要:本程序代码编译能通过,但是在main函数中未调用的函数没进行测试。/*本程序用来测试数据结构中的线性结构:顺序表*/#include <stdio.h>#include <stdlib.h>#define LINEAR_MAX_SIZE 64struct LinearList{ int* List; //顺序表指针 unsigned short int ListLen; //顺序表最大的元素个数 unsigned short int CurrentLen; //顺序表当前元素的个数};typedef struct LinearList LINEARLIST;typ... 阅读全文
posted @ 2013-04-20 15:20 volcanol 阅读(337) 评论(0) 推荐(0)

摘要:三个排序算法:冒泡排序、插入排序、选择排序/* 本程序测试各种排序方法*/#include <stdio.h>#define SORTED 1#define NOTSORTED 0void BubbleSort(int* List,int ListLen);void BubbleSortF(int* list,int length);void EchoList(int* List,int ListLen);void Swap(int* x,int* y);void InsertSort(int* List,int ListLen);void SelectSort(int* Li.. 阅读全文
posted @ 2013-04-16 21:53 volcanol 阅读(498) 评论(0) 推荐(1)

volcanol ----View OF Linux Can Appreciate Nature OF Linux。