
数据结构和算法
文章平均质量分 78
skyie
这个作者很懒,什么都没留下…
展开
-
C函数调用栈过程分析
1 问题描述 在此之前,我对C中函数调用过程中栈的变化,仅限于了解有好几种参数的入栈顺序,其中的按照形参逆序入栈是比较常见的,也仅限于了解到这个程度,但到底在一个函数A里面,调用另一个函数B的过程中,函数A的栈是怎么变化的,实参是怎么传给函数B的,函数B又是怎么给函数A返回值的,这些问题都不能很明白的一步一步解释出来。下面,便是用一个小例子来解释这个过程,主要回答的问题是如下几个:转载 2015-12-21 22:59:25 · 607 阅读 · 0 评论 -
GCC抽象语法树
#include #include #include #include #include #include using namespace std; const int LINE=99999; const int BUF_SIZE=1000; int totalline=0; //总行数 int useful[LINE]= {0}; //简单类型 const int STYP原创 2013-09-04 17:12:45 · 2741 阅读 · 1 评论 -
C程序内存格局
C程序内存结构 一个32位的运行在保护模式下应用程序 无论是Linux 还是Windows 都给它分配一个4GB的平坦的内存空间 一个运行着的c程序所占用的内存空间分为: 代码区 初始化数据区 未初始化数据区 堆区 和 栈区 在地址上从高位到地位为 (高位) 栈区 堆区 未初始化数据区(即BBS) 数据区 代码区 (低位) 栈区存放函数的参数值转载 2013-10-01 21:47:11 · 683 阅读 · 0 评论 -
C++面试宝典(转)
1.new、delete、malloc、free关系 delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之转载 2013-10-01 22:50:53 · 846 阅读 · 0 评论 -
二叉树算法
/** * 二叉树算法 * date 2015-4-20 */ #include #include #include #define Element char typedef struct BNode{ Element data; struct BNode* lchild; struct BNode* rchild; }BNode_t, *BTree; static vo原创 2015-04-20 22:56:55 · 585 阅读 · 0 评论 -
关于B树,B+树
讲解B树比较清楚的吗、博客链接: http://blog.youkuaiyun.com/v_july_v/article/details/6735293原创 2015-11-02 22:24:25 · 369 阅读 · 0 评论 -
BM算法
在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。 BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。 BM算法实际上包含两个并行的算法,坏字符算法和好后缀算法。这两种算法的目的就是让模式串每次向右移动尽可能大的距离(j+=x,x尽可能的大)。 几个定义:转载 2012-12-09 15:35:14 · 500 阅读 · 0 评论 -
Qt 我的记事本程序
经过三四天的学习QT,终于把自己的记事本程序搞定了,功能还比较简单,以后逐步添加! // mywindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include QT_BEGIN_NAMESPACE class QAction; class QMenu; class QPlainTextEdit; QT_END_N原创 2012-10-14 15:46:04 · 4797 阅读 · 0 评论 -
优秀有价值的博客收藏列表(持续更新)
本文属于本人资源整理,大多数的资源来自于: 我的Google Reader订阅:http://blog.youkuaiyun.com/chenyusiyuan/article/details/5945540 【大学生活】优秀的有趣的博客:http://blog.youkuaiyun.com/xiaowei_cqu/article/details/8034195 价值博客列表:http://b转载 2012-10-11 16:25:16 · 1037 阅读 · 0 评论 -
【谷歌面试题】在O(1)时间内删除链表节点
题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。 函数的声明如下: void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted); 分析:这是一道广为流传的Google面试题,能有效考察我们的编程基本功,还能考察我们的反应速度,更重要的是,还能考察我们对时间复杂度的理解。 在链表中删除一个结点,最常原创 2012-10-11 13:37:14 · 1356 阅读 · 0 评论 -
c++构造函数详解
c++构造函数详解(转) 2009-08-28 17:53:28| 分类: 编程|字号 订阅 c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。原创 2012-10-09 20:42:29 · 403 阅读 · 0 评论 -
ACM题目分类
著名的北邮ACM推荐50题 1、标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2、标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3、列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4、这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资转载 2012-09-25 21:10:36 · 1141 阅读 · 0 评论 -
高精度减法算法
#include #include using namespace std; void sub( char*str1,char* str2,char* c) //c返回结果 { int flag=1; //1表示被减数str1大于减数str2,-1相反结果前要有负号 int i,j; int len1=strlen(str1); int len2=str原创 2013-10-06 22:19:00 · 618 阅读 · 0 评论