摘要: 二分查找: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 阅读全文
posted @ 2016-05-16 21:33 A_carat_tear 阅读(298) 评论(0) 推荐(1) 编辑
摘要: 输入两个整数序列,第一个整数序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出序列??? 解决该问题很直观的想法就是建立一个辅助栈,根据弹出序列知第一个希望被弹出的数字为X,由于压入栈的顺序由压栈序列确定,所以此时应该把压入序列中X之前的 数字都依次压人到辅助栈里面去。如果下一个被弹出的数字刚好 阅读全文
posted @ 2016-05-15 11:40 A_carat_tear 阅读(691) 评论(0) 推荐(1) 编辑
摘要: 要2个栈公用一个存储空间看来栈顶指针只能从两端开始了 设2个栈为栈1,栈2 ,栈1初始的栈顶指针为-1,栈2的初始栈顶指针为Size 阅读全文
posted @ 2016-05-14 19:47 A_carat_tear 阅读(385) 评论(0) 推荐(1) 编辑
摘要: 队列的定义--Queue 队列是只允许在表的队尾插入,在表的队头进行删除。队列具有先进先出的特性(FIFO, First In First Out)。 队列提供了下面的操作 队列的实现 下面是用C++实现的一个队列结构的源码(链表) 阅读全文
posted @ 2016-05-07 23:29 A_carat_tear 阅读(337) 评论(0) 推荐(1) 编辑
摘要: 栈的定义--Stack 栈是只允许在末端进行插入和删除的线性表。栈具有后进先出的特性(LIFO ,Last In Fast Out)。 学过数据结构的人都知道:栈可以用两种方式来实现,一种方法是用数组实现栈,这种栈成为静态栈;另外一种方法是用链表实现栈,这种栈叫做动态栈。 栈提供如下操作 栈的实现 阅读全文
posted @ 2016-05-07 21:25 A_carat_tear 阅读(380) 评论(0) 推荐(1) 编辑
摘要: String类的三种实现 浅拷贝 当类里面有指针对象时,进行简单赋值的浅拷贝,两个对象指向同一块内存,存在崩溃的问题!这里我们要进行深拷贝。 深拷贝 写时拷贝 string 之间拷贝时不是深拷贝,只拷贝了指针, 也就是共享同一个字符串内容, 只有在内容被修改的时候, 才真正分配了新的内存并 copy 阅读全文
posted @ 2016-04-19 14:32 A_carat_tear 阅读(427) 评论(0) 推荐(1) 编辑
摘要: 链表概念--链表是一种线性表,但是并不是顺序存储,而是每个节点里面存储着下一个节点的指针,把存储数据元素的数据串链起来 单链表的实现 阅读全文
posted @ 2016-04-19 13:25 A_carat_tear 阅读(408) 评论(0) 推荐(1) 编辑
摘要: 不使用库函数、自己编写的(strlen、strcpy、strcmp、strcat、memcmp、memcpy、memmove) 阅读全文
posted @ 2016-04-19 10:46 A_carat_tear 阅读(822) 评论(0) 推荐(1) 编辑
摘要: 在我们自己编写 C/C++的头文件时,可能会忽略一点:用一些处理机制来避免头文件的重复包含,因为头文件的内容在预编译时是把头文件的内容完全拷贝到引入的地方替换头文件的包含命令,而包含的头文件可能有包含很多内容,所以要是重复包含头文件,可能会使预编译后的源文件代码冗余量很大,造成空间上的浪费。 1、 阅读全文
posted @ 2016-04-10 17:23 A_carat_tear 阅读(724) 评论(0) 推荐(2) 编辑