数据结构
fanzhang1990
这个作者很懒,什么都没留下…
展开
-
C++写的带有头结点单链表创建,插入,删除,显示
#include using namespace std;struct link{ char data; struct link *next;};link *head,*tail; //创建头指针和尾指针int creat();/******显示数据*************/void show(){ link *q=原创 2012-08-21 09:07:21 · 8883 阅读 · 1 评论 -
二叉树遍历 非递归 C++实现
二叉树的非递归遍历二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.转载 2012-09-23 17:00:49 · 757 阅读 · 0 评论 -
堆排序
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为转载 2012-10-09 10:53:57 · 430 阅读 · 0 评论 -
带有头结点,头指针真,尾指针的栈基本操作
#includeusing namespace std;typedef char elemtype;/*带有头结点,头指针真,尾指针的栈基本操作*/struct Stack{ elemtype data;struct Stack *next;};//*PStack;//PStack ptop;//PStack pbottom; //定义头指针,尾指针原创 2012-09-02 20:11:55 · 2294 阅读 · 0 评论 -
C++写的带有头结点循环单链表
#include using namespace std;struct link{ char data; struct link *next;};link *head,*tail; //创建头指针和尾指针int creat();/******显示数据*************/void show(){ link *q=head;原创 2012-08-21 09:06:02 · 1773 阅读 · 0 评论 -
不带头节点的双向循环链表的基本操作
/************不带头节点的双向循环链表的基本操作,创建,显示,删除,插入,查找***************************/#includeusing namespace std;class link{public: char data; link *prve; link *next;};link *head;void原创 2012-08-21 09:02:11 · 3549 阅读 · 1 评论 -
数据结构之堆
1. 概述堆(也叫优先队列),是一棵完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。2. 堆的基本操作堆是一棵完全二叉树,高度为O(lg n),其基本操作至多与树的高度成正比。在介绍堆的基本操作之前,先介绍几个基本术语:A:用于表示堆的数组,下标从1开始,一直到nPARENT转载 2012-08-21 19:41:42 · 602 阅读 · 0 评论 -
用循环单链表实现约瑟夫环(不含头结点)
/***************************************用循环单链表实现约瑟夫环*************************************/#include using namespace std;class P{public: char data; P* next;};P *head;原创 2012-08-21 09:04:06 · 3416 阅读 · 0 评论 -
c++的双向链表操作
#include using namespace std;class Node {public: int element; Node *next; Node *previous; Node(int element, Node *next, Node *previous) { this->element = element转载 2012-08-21 08:59:34 · 4426 阅读 · 0 评论 -
位运算艺术
本文是针对使用位运算来实现一些方法,我们都知道位运算的代价比其他符号运算都低,所以当一个方法只使用位运算且运算次数与其他不纯使用位运算的方法相等时,所用的时间肯定是最短的,甚至即使运算次数比其他 方法多,也是有可能花的时间短的。这里计算算法的衡量标准是位运算的运算此时,任何C的位运算符当作一次运算,不写到RAM的中间赋值不算运算,当然这里假设每次运算代价都是近似相同的机器指令和CPU时间。当然转载 2013-08-16 09:46:51 · 635 阅读 · 0 评论