数据结构
文章平均质量分 60
windmissing
喜欢编程,喜欢思考,方向明确
展开
-
串
MyString.hconst int MAXSIZE = 100;class CMyString{private: int m_ncurlen; char *m_pstr; int *m_pnext;public: CMyString(const CMyString& copy); CMyString(const char *init); CMyString(); ~C原创 2012-01-01 14:54:45 · 1329 阅读 · 0 评论 -
B-树(理论)
1.B-树的性质(1)树中每个结点至多有m个子树(2)若根结点不是叶子结点,则至少有两个子树(3)除根结点以外所有非叶子结点至少有[m/2](上限符号)个子树(4)所有非终端结点包含以下信息:n,A0,K1,A1,K2,A2,……,Kn,An。其中,Ki是关键字,Ai是指向子树根结点的指针(5)所有叶子结点都出现在同一层次上,且不带信息2.B-树的查找,是顺指针查找原创 2012-02-29 15:40:45 · 1036 阅读 · 0 评论 -
B-树(程序)
BTreeNode.htemplate class BTree;template class BTreeNode{public: friend BTree; BTreeNode(): m_nMaxSize(0), m_ptr(NULL), m_pparent(NULL){} BTreeNode(int size): m_nsize(0), m_nMaxSize原创 2012-01-01 14:41:13 · 1217 阅读 · 0 评论 -
排序(程序)
QueueNode.htemplateclass PriorityQueue;templateclass QueueNode{ friend class PriorityQueue; QueueNode(const Type item, QueueNode *next = NULL) :m_data(item),m_pnext(next){}private: Type m_原创 2012-01-04 16:09:01 · 1161 阅读 · 0 评论 -
线索二叉树
ThreadNode.htemplate class ThreadTree;template class ThreadInorderIterator;template class ThreadNode{public: friend class ThreadTree; friend class ThreadInorderIterator;private: int m_nleft原创 2012-01-04 16:07:51 · 1052 阅读 · 0 评论 -
顺序栈
SeqStack.htemplateclass SeqStack{private: int m_ntop; Type *m_pelements; int m_nMaxSize;public: SeqStack(int sz):m_ntop(-1),m_nMaxSize(sz){ m_pelements = new Type[sz]; if(m_pelements == NU原创 2012-01-04 16:04:32 · 971 阅读 · 0 评论 -
顺序队列
SeqQueue.htemplateclass SeqQueue{private: int m_nrear; int m_nfront; int m_ncount; int m_nMaxSize; Type *m_pelements;public: SeqQueue(int sz):m_nrear(0),m_nfront(0),m_nMaxSize(sz),m_ncount(0原创 2012-01-04 16:02:35 · 972 阅读 · 0 评论 -
双向循环队列
ListNode.htemplateclass DoublyList;templateclass ListNode{private: Type m_data; ListNode *m_pprior; ListNode *m_pnext;public: Type GetData();private: friend class DoublyList; ListNode():m原创 2012-01-04 16:00:10 · 1418 阅读 · 0 评论 -
树
TreeNode.htemplate class Tree;template class TreeNode{public: friend class Tree;private: Type m_data; TreeNode *m_pfirst, *m_pnext; TreeNode():m_pfirst(NULL), m_pnext(NULL){} TreeNode(Type原创 2012-01-04 15:54:41 · 1048 阅读 · 0 评论 -
排序
Element.htemplateclass Element{private: Type key;public: Type GetKey(){return key;} void SetKey(Type item){key = item;}public: Element& operator =(Element copy) { key = copy.key; retu原创 2012-01-04 15:21:49 · 1103 阅读 · 0 评论 -
链式栈
StackNode.htemplateclass LinkStack;templateclass StackNode{private: Type m_data; StackNode *m_pnext;private: friend class LinkStack; StackNode(Type dt,StackNode *next):m_data(dt),m_pnext(nex原创 2012-01-04 15:10:25 · 926 阅读 · 0 评论 -
链式队列
QueueNode.htemplate class LinkQueue;templateclass QueueNode{private: Type m_data; QueueNode *m_pnext;private: friend class LinkQueue; QueueNode(const Type item, QueueNode *next = NULL) :m_原创 2012-01-04 14:55:03 · 891 阅读 · 0 评论 -
哈夫曼树
Huffman.h#include "BinaryTree.h"#include "MinHeap.h"templatevoid Huffman(Type *elements, int n, BinaryTree &tree){ BinaryTree first, second; BinaryTree node[20]; for(int i = 0; i < n; i++)原创 2012-01-04 14:51:22 · 904 阅读 · 0 评论 -
二叉树
BinTreeNode.htemplateclass BinaryTree;templateclass BinTreeNode{private: BinTreeNode *m_pleft, *m_pright; Type m_data;public: friend class BinaryTree; BinTreeNode():m_pleft(NULL),m_pright(NU原创 2012-01-04 14:47:42 · 963 阅读 · 0 评论 -
最小堆
MinHeap.htemplateclass MinHeap{private: static const int defaultsize = 100; const int m_nMaxSize; Type *m_pheap; int m_ncurrentsize; void Adjust(const int start, const int end);public: MinHe原创 2012-01-04 14:43:31 · 901 阅读 · 0 评论 -
单链表
ListNode.htemplateclass SingleList;templateclass ListNode{private: friend typename SingleList; ListNode():m_pnext(NULL){} ListNode(const Type item, ListNode *next=NULL):m_data(item),m_pnext(n原创 2012-01-01 15:02:38 · 1116 阅读 · 0 评论 -
顺序表
Seqlist.hconst int DefaultSize=100;template //有什么用?怎么用?class SeqList{public: SeqList(int sz=DefaultSize) :m_nmaxsize(sz),m_ncurrentsize(-1){ if(sz>0){ m_elements=new Type[m_nmaxsize];原创 2012-01-01 12:49:59 · 1207 阅读 · 2 评论 -
单循环链表
ListNode.htemplateclass CircularList;templateclass ListNode{public: Type m_data; ListNode *m_pnext;private: friend class CircularList; ListNode():m_pnext(NULL){}; ListNode(const Type item,原创 2012-01-02 14:43:03 · 1136 阅读 · 0 评论 -
排序(理论)
1.插入排序:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表(1)简单插入排序(2)折半插入排序(3)希尔排序:将整个待排记录序列分成若干个子序列分别进行插入排序,待整个序列基本有序时,再对全体记录进行一次直接插入排序2.交换排序(1)起泡排序:第i趟起泡排序中从L.r[1]到L.r[n-i+1]依次比较相邻两个记录的关键字,并在逆序时交换相邻原创 2012-02-29 11:26:25 · 1130 阅读 · 0 评论