STL各个数据结构特点
摘要:STL容器特征总结2011-11-09 11:10:50|分类:STL|举报|字号订阅STL中顺序容器类和关联式容器类的主要特征如下:(1)Vector1、内部数据结构:连续存储,例如数组。2、随机访问每个元素,所需要的时间为常量。3、在末尾增加或删除元素所需要时间与元素数目无关,在中间或开头增加或...
阅读全文
两个栈实现队列 以及两个队列实现栈
摘要:1.用两个栈来实现队列,栈是先进后出的,队列是先进先出的,这时,我们可以用stack1来专门入栈,stack2来专门出栈,具体地:入队:直接入栈到stack1出队:检测stack2是否为空,如果为空,则将stack1的所有元素移动到stack2中, 再次判断stack2是否为...
阅读全文
二叉树深度、平衡、相等、求遍历
摘要:#include #include #include using namespace std;struct TreeNode { struct TreeNode* left; struct TreeNode* right; char elem; ...
阅读全文
有头结点的链表操作
摘要:#include#include using namespace std;struct Node{ int data; Node *next;};//没有头结点的插入新节点Node* AddNode(Node *head,int num)//如果是void 类型的 那么head要用指向指...
阅读全文
排序算法的稳定性
摘要:这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定...
阅读全文
判断两棵二叉树是否相等
摘要:#include using namespace std;struct TNode{ TNode * LeftChild; TNode * RightChild; char data;};TNode *CreateTree(){ TNode *pRoot=NULL; c...
阅读全文
约瑟夫环
摘要:约瑟夫环,已知n个人,(编号从1、2、3、4......n),围在一张圆桌上,从编号为startnum的人开始报数,报到outnum的人出列,接着从下一个人开始从1报数,数到outnum的人又出列;依次规律重复下去,知道所有人全部出列,请写出出列的依次序号数。 这是一个约瑟夫环问题,用单链表来...
阅读全文
二叉树
摘要:更多二叉树相关概念请看http://blog.csdn.net/zhang_xinxiu/article/details/12904635一、二叉树相关概念:路径:对于节点n1 n2 n3….nk从n1到nk的路径长度为k-1节点的层数:只有一个根节点,则层数为1,其余节点的层数为双亲节点的层数加1...
阅读全文
排序
摘要:1.选择排序 选择排序的基本原理是:每次找出最小的元素放到前面,具体的: 对于一组给定的记录a1,a2,a3.......an; 第一次循环:从a2开始到an,依次和a1进行比较,找到小于a1当中最小的一个,与a1进行交换,否则不交换; 第二次循环:从a3开始到an,依次和a2进行比较,找到...
阅读全文
二分查找
摘要:#include using namespace std;//二分查找算法实现int BinarySearch(int a[],int len,int findnum){ int low = 0; int high = len - 1; while(low fin...
阅读全文
队列(顺序)
摘要:顺序队列是一段连续的地址,但是存在假溢出情况,所以要用循环队列来实现,具体操作像钟表下面是顺序队列的表示与实现:#include using namespace std;//顺序循环队列的基本表示和实现const int MAX_SIZE = 100;//定义队列长度struct SqQueue{ ...
阅读全文
队列(链式)
摘要:队列,是一种先进先出的线性表,它只允许在队头删除,在队尾插入,链式队列和单链表操作类似,但是有队首指针和队尾指针,下面是链式队列的表示和实现:#include using namespace std;//队列的链式表现与实现struct QNode{ int data; QNode *n...
阅读全文
顺序栈与链式栈
摘要:栈是限定尽在表尾进行插入或者删除操作的线性表,分为顺序栈和链式栈。 对于malloc()一次申请的内存地址,在逻辑上是连续的,也就是我们用的时候可以当做连续的来用,但是在物理内存上未必是连续的; 顺序栈: 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设top指示栈顶...
阅读全文
单链表
摘要:数组和链表对比有什么优势和缺点?A 从逻辑结构来看A-1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数,出现溢出现象;当数据减少时,造成内存浪费。数组中插入、删除数据项时,需要移动其它数据项。A-2. 链表动态地进行存储分配,可以适...
阅读全文