队列的实现 问题描述: 面试或笔试时,常常会遇到自主实现一个队列,以实现队列的进出,判空和满等的相关操作,虽然实现难度较为简单,但却也算得上一个热门题型,主要考察学生有效时间内对于简单队列的设计是否考虑周全以及成员函数的实现以及参数和函数返回值等细节问题。#includeusing namespace std;template struct Node
初识C++ C++语言的诞生: 1982年,美国AT&T公司贝尔实验室的Bjarne Stroustrup博士在c语言的基础上引入并扩充了面向对象的概念,发明了—种新的程序语言。为了表达该语言与c语言的渊源关系,它被命名为c++。此后C++语言历经了不断地完善,例如1990年c++语言引入模板和异常处理的概念,1993年引入运行时类型识别(RTTI)和名字空间(Name Space)的概
Huffman编码之文件的解/压缩 史上最具人性化的文件压缩详述,基于Huffman算法的文件压缩项目,还在为找练习项目而苦恼?还在为Huffman算法困惑?还在为文件压缩一头雾水?来吧,,,一起学习,共同进步.....
C++中的单例模式 ★在设计或开发中,有时会遇到一个类只能有一个对象被创建,如果有多个对象的话,可能会导致状态的混乱和不一致的情形,其实对于了解设计模式的人来说一眼能看出这是单例模式的应用场景,但是对于不了解设计模式的人来说,要实现它也并非多难,但是如果在面试中被问到这里时,就不仅仅是写得出写不出的问题了,写出来只能说是比写不出的人优秀一些,但并不意味着能通过,因为面试官往往期待的是精简易懂,鲁棒性高的代码,何况这23种常见设计模式中,只有单例模式(Singleton)是唯一一个能用简短的几十行代码完整实现的,所以其难度虽小却
常见的排序算法 排序算法可谓数据结构模块中的重中之重,常见的哈希表,二叉树,搜索树/平衡树,位图等数据结构只是处理实际问题的抽象方法,实际在处理接受或生成的数据集时,排序算法显得尤其重要,排序算法家族很庞大,其中包括了冒泡排序,选择排序,插入排序,堆排序,快速排序,归并排序,基数排序,计数排序,希尔排序,箱排序,树型排序等众多算法,每种排序都有各自的特性,没有好坏之分,只有在特定的场景使用合适的排序算法才是上策,单纯的来比显得太过绝对,没有可比性。因为实际需求及各方面条件的限制使得排序算法的可选范围往往只缩小到某一种或某几
顺序表(Seqlist)&链表(List)的基础操作 顺序表和链表是数据结构的基础结构之一,同样也是面试的基础。初学者对于Seqlist和List的增删改查的基础练习,为其后的Tree,HashTable,Binary Linked List,Trigeminal linked list等数据结构打下坚实的基础。
task_structde(PCB)的结构剖析 进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。每一个进程都有一个进程描述符,具体是task_struct结构体存储相关的信息,task_struct就是我们通常所说的PCB(进程控制块,控制进程的唯一手段)。
Linux下实现进度条小程序 无论下载,解压缩,复制等情况时,我们总能看到进度条这种东西。进度条以图片形式的可视化窗口直观的显示出计算机处理当前任务的速度,完成度,剩余完成的任务量,以及需要的时间等信息,所以在此我们可以自主实现一个简易的进度条小程序,在centos环境下的linux系统下编写,我们会用到ctags指令以及makefile文件,所以在此之前要确定当前系统已成功安装ctags。