jeans chen
we've got them by the balls
摘要: 链表逆序原帖地址http://blog.csdn.net/niuer09/article/details/5961004分类:C/C++2010-10-23 17:2318425人阅读评论(22)收藏举报listnullstruct测试设链表节点为[cpp]view plaincopytypedefstructtagListNode{intdata;structtagListNode*next;}ListNode,*List;要求将一带链表头List head的单向链表逆序。分析: 1). 若链表为空或只有一个元素,则直接返回;2). 设置两个前后相邻的指针p,q. 将p所指向的节点作为q指向 阅读全文
posted @ 2014-02-06 19:38 jeans chen 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 二分插入排序也称折半插入排序,基本思想是:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数 x ,利用二分查找算法找到 x 在有序序列中的插入位置并插入,有序序列还是有序的,接下来重复上述步骤,直到无序序列全部插入有序序列 ,这是整个序列只剩下有序序列即有序了。01voidBinaryInsertSort(int*pArray,intlen)02{03//刚开始设有序序列只有一个元素 pArray[0],无序序列为[1...n]了04for(inti = 1; i = pArray[i - 1])08{09con 阅读全文
posted @ 2014-02-06 17:22 jeans chen 阅读(894) 评论(1) 推荐(0) 编辑
摘要: C++ new和delete重载2012-02-15 23:25:33|分类:C/C++|举报|字号订阅 首先,new和delete是运算符,重载new和delete是可能的。这样做的原因是,有时希望使用某种特殊的动态内存分配方法。例如,可能有些分配子程序,他们的堆已耗尽,自动开始把一个磁盘文件当虚存储使用,或者用户希望控制某一片存储空间的分配等。重载new和delete的格式如下:void *operator new (size_t size){ .......//完成分配工作 return pointer_to_memory;}void operator delete(void *p){ 阅读全文
posted @ 2014-02-06 15:32 jeans chen 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 9种排序2012-09-19 14:5866人阅读评论(0)收藏编辑删除algorithmfpfilemergeintegerfloat[cpp]view plaincopy#include#include#include#includevoidSwap(float&x,float&y){x=x+y;y=x-y;x=x-y;}voidPrintData(int*pDataArray,intiDataNum){for(inti=0;i=0&&pDataArray[j]>temp)//从后向前,找到比其小的数的位置{pDataArray[j+d]=pDataA 阅读全文
posted @ 2014-02-06 15:25 jeans chen 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 这个不好懂,不如看 转贴:C语言链表基本操作http://www.cnblogs.com/jeanschen/p/3542668.htmlZT 链表逆序http://www.cnblogs.com/jeanschen/p/3538966.htmlC语言链表操作(新增单向链表的逆序建立)分类:C/C++2011-09-17 22:051017人阅读评论(0)收藏举报语言cnullinsertsearchstruct众所周知,链表是数据结构的基础,掌握链表很重要http://blog.csdn.net/liushuaikobe/article/details/6785964![cpp]view p 阅读全文
posted @ 2014-02-06 15:19 jeans chen 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 二叉树先序,中序,后序遍历非递归实现分类:数据结构及算法2012-04-28 14:308572人阅读评论(6)收藏举报structc利用栈实现二叉树的先序,中序,后序遍历的非递归操作[cpp]view plaincopy#include#include#include#include#include#includeusingnamespacestd;typedefstructBiTNode{chardata;BiTNode*lchild,*rchild;}BiTNode,*BiTree;voidCreateBiTree(BiTree&T)//建树,按先序顺序输入节点{charch;s 阅读全文
posted @ 2014-02-06 15:01 jeans chen 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 根据访问结点操作发生位置命名:① NLR:前序遍历(PreorderTraversal亦称(先序遍历))——访问根结点的操作发生在遍历其左右子树之前。② LNR:中序遍历(InorderTraversal)——访问根结点的操作发生在遍历其左右子树之中(间)。③ LRN:后序遍历(PostorderTraversal)——访问根结点的操作发生在遍历其左右子树之后。注意:由于被访问的结点必是某子树的根,所以N(Node)、L(Left subtree)和R(Right subtree)又可解释为根、根的左子树和根的右子树。NLR、LNR和LRN分别又称为先根遍历、中根遍历和后根遍历。用二叉链表做为 阅读全文
posted @ 2014-02-06 14:47 jeans chen 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 原创 :彻底了解指针数组,数组指针以及函数指针[复制链接]00roking白手起家帖子60主题16精华0可用积分74专家积分0在线时间0 小时注册时间2003-10-07最后登录2004-12-06问答好友博客消息论坛徽章:0电梯直达1楼[收藏(0)][报告]发表于 2004-07-30 19:23:41|只看该作者|倒序浏览小弟是一个软件工程师,做unix c/c++ java的开发,每次碰到问题都跑到CU里问人,呵呵,昨天在碰到一个指针数组的问题的时候,由于好久没用,感觉有些陌生了,所以今天归纳总结了一下,希望以后的朋友可以少走些弯路,也不知道对大家有没有用处:)一 :关于指针和堆的内存分 阅读全文
posted @ 2014-02-06 13:14 jeans chen 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 复杂的函数指针例子分析2008-01-26 11:38:22分类:一个最简单的函数指针定义如下:Void (*funcPtr) (); //funcptr是一个函数指针,它指向的函数没有参数,返回值为void非常复杂的函数指针定义:1.Void * (*( * fp1)(int))[10];解析:Void * X[10];è这是一个有10个void*类型的元素的数组。X=*( * fp1)(int),从而可以看出(*fp1)(int)它是一个指针,指向一个数组。这个数组有10个void指针类型的元素。Fp1是一个函数指针,它的参数是一个int型的参数。返回值为一个指向含有10个voi 阅读全文
posted @ 2014-02-06 13:13 jeans chen 阅读(180) 评论(0) 推荐(0) 编辑
摘要: #include#includechar *revert(char *str){char temp;char *p = str;char *q = str;int strlong = 0;int i;strlong = strlen(str);q+= (strlong - 1);for(i = 0; i <= strlong/2; i++){temp = *q;*q = *p;*p = temp;p++;q--;}return str;}main(){char str[] = "abcdefghijklmnopqrstuvwxyz";revert(str);print 阅读全文
posted @ 2014-02-06 12:28 jeans chen 阅读(151) 评论(0) 推荐(0) 编辑
摘要: http://blog.chinaunix.net/uid-20788517-id-34777.html分类:C/C++ 1#include2#include3#include45intmain()6{7char*src="abcdefghijk";8intlen=strlen(src);9char*dest=(char*)malloc(len+1);1011char*a=&src[len-1];12char*b=dest;1314while(len--!=0)15*b++=*a--;16printf("%s\n",dest);17free(de 阅读全文
posted @ 2014-02-06 12:27 jeans chen 阅读(186) 评论(0) 推荐(0) 编辑