c语言基础
小索
杂,乱
展开
-
矩阵相乘
#include #include #include void matrix_multiply(int *m1,int *m2, int x,int y,int z){ int reval[x][z]; memset(reval,0,sizeof(int)*x*y); int i,j,k; for(i=0;i<x;i++) for(j=0;j<z;j++) for原创 2012-09-18 14:37:18 · 495 阅读 · 0 评论 -
链表反转
关于链表反转,最开始相当是设临时变量保存,然后一个个反转,但这个思维有点乱。突然脑门中闪过一个主意,所谓反转,不就是把最新的元素放在链表头部么?假设原始链表是List,新的链表是New,是不是List的元素一个个按顺序取出来,存放到New的头部?New就是反转后的新链表了。以下是程序代码:typedef struct Node{ char data; struct Node *ne原创 2014-02-17 14:57:38 · 633 阅读 · 0 评论 -
一个函数指针参数的坑
#include 2 #include 3 #include 4 5 void fo原创 2012-11-23 14:56:22 · 450 阅读 · 0 评论 -
链表的创建、删除、反向(C语言)
链表反向用的方式是新建一个链表,将原链表元素依次charuzh原创 2014-08-30 16:39:24 · 1303 阅读 · 0 评论 -
关于函数返回值的一点思考
int sum(char *a){ int temp; …… return temp;}想必上面的那个函数是简单的不能再简单的jiao原创 2014-09-11 15:04:01 · 570 阅读 · 0 评论 -
树的创建、遍历简单代码
纯粹练手,毫无价值原创 2014-09-04 11:01:39 · 846 阅读 · 0 评论 -
红黑树以及插入
红黑树的概念红黑树的五个基本特性:In additionto the requirements imposed on a binary search trees, withred–black trees: //有搜索二叉树的基础上红黑树还有以下特性A node is either red or black. //节点不是红的就是黑的The root is bla原创 2012-11-24 21:06:34 · 2066 阅读 · 0 评论 -
字符串中查找最长回文子串完整代码
参考原文:http://blog.csdn.net/yzl_rex/article/details/7908259#include #include #include int Min(int a,int b){ return ((a-b)?b:a);}char* huiwen(char *s){ if(NULL == s){ return 0; } int id;原创 2013-08-20 08:29:19 · 4674 阅读 · 0 评论 -
KMP算法简单说明
KMP算法主要是用来字符串的匹配,其作用是可以在线性时间内完成字符串字串的匹配。其大致原理是这样子的,就是在要匹配的串中,给每一个元素都打上一个标签(next[j]),这个标签可用来后续匹配中,直接就跳过。假如是这样的,在串S中寻找匹配T的字串S:ababcababcbaT: ababcbnext[1]=0;i=1;j=0;while(i<=T[0]){ if(j == 0原创 2013-05-03 13:42:35 · 636 阅读 · 0 评论 -
一道简单的面试题(数组)
题目:#面试编程题#给定一个长度为n整数型数组,看是否满足以下条件,相临数字之差的绝对值,刚好可以组成 1,2,...,n-1。例如:2 5 4 6 --> 1, 2, 3 成立。2 5 4 7 --> 1, 3, 3 不成立。1 2 3 4 --> 1, 1, 1 不成立。出自陈利人老师的微薄http://weibo.com/1915548291/zrVFUhKsB,里面评论中也说了很多原创 2013-04-16 17:22:55 · 751 阅读 · 0 评论 -
大数相乘简单代码
只是简单实现,还没有优化,先放上来再说。看上去还有点乱,应该还会有更简单的方法#include #include #include #include #define NUMLENTH 32char *multibig(char *a,char *b,char *c){ if(NULL == a || NULL == b || NULL == c){ exit(0原创 2013-03-25 09:16:53 · 716 阅读 · 0 评论 -
IPC——socket方式
在socket(int domain,int type,int protocol)这个函数里,其中第一个参数指的是通信协议的协议族,其中AF_UNIX用于本地数据通信,它不用拆包组包,直接是将应用层的数据COPY至另一个进程。僵尸进程: 子进程退出后,父进程没有wait或者waitpid,子进程还没有从进程表中删除,还占用系统的进程表,太多的进程表会导致系统崩溃,所以原创 2013-04-07 11:23:34 · 4312 阅读 · 0 评论 -
指针数组和数组指针
talk is cheap ,show me code。最好的交流就是code,so先来一发code#include #include int main(void){ int a[4][4]; int i,j; int (*p)[4]; //数组指针 int *q[4]; //指针数组 p = a; for(i=0;i<4;i++) for(j=0;j<4;j++)原创 2012-12-17 11:07:04 · 444 阅读 · 0 评论 -
快速排序简单代码
快速排序的思想就是分治,挑选一个key值,按大小左右分类,再不断递归。下面代码中的key为比较数组的头,如果是一个有序数列的话,时间会非常糟糕,所以这个key建议随机化#include #include int parttion(char *s,int len){ if(s == NULL || len <= 0 ){ return -1; } int i,j,k原创 2012-12-11 14:53:58 · 451 阅读 · 0 评论 -
归并排序和堆序法的简单例子
归并排序:归并的思想是将数据二分,然后两边再各自排序,最后再合并处理。其中心思想也是分治。#include #include char copy[128];//合并时候需要的缓存void swap(char *a, char *b){ char tmp = *a; *a = *b; *b = tmp;}int sort(char *s,int end){ i原创 2012-10-27 22:50:31 · 1489 阅读 · 0 评论 -
二叉树的建立、遍历的简单代码
代码很简单,由于在ubuntu虚拟机下,输入一个字符 ,用getchar会收到字符+回车,不知道怎么消除,所以就简单用strcmp+静态数据i结合来给节点赋值。 至于没有free,这个习惯真不好。but由于程序简单,在程序执行完毕后,系统会给free掉这个进程malloc出来的空间的,简单代码的话对系统没有影响,要是大型系统代码的话,就存在隐患#include #i原创 2012-11-21 15:59:52 · 9892 阅读 · 0 评论 -
hash表的简单说明以及例子
http://blog.csdn.net/feixiaoxing/article/details/6885657 这一篇写的很赞 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。hash表可以解决以上两个不足之处。 假如你要在图书馆里找一本《电路原理》,这本书首先它在工科类下面,再在工科类的电子信息这个分类里面,你首先要找到工科原创 2012-08-11 17:59:15 · 3290 阅读 · 1 评论 -
int类型以及字符串从左到右变换
把int类型的值按二进制模式从左到右变换#include void swap(int *value){ printf("value:%x\n",*value); /* *value = ((*value)&0xff000000) >> 24 | \ ((*value)&0x00ff0000) >> 8 |\ ((*value)&0x0000ff00) << 8 |原创 2012-09-18 09:37:49 · 733 阅读 · 0 评论 -
链表删除
代码:int RemoveNode(Node_t **List,char data){ Node_t **curr = List; for(;*curr;){ Node_t *en = *curr; if(data == en->data){ *curr = en->next; free(en); }else{ curr = &en->next;原创 2014-02-17 16:05:33 · 1269 阅读 · 0 评论