![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 60
windmissing
喜欢编程,喜欢思考,方向明确
展开
-
串
MyString.h const 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 · 1301 阅读 · 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 · 1030 阅读 · 0 评论 -
B-树(程序)
BTreeNode.h template 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 · 1211 阅读 · 0 评论 -
排序(程序)
QueueNode.h templateclass 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 · 1156 阅读 · 0 评论 -
线索二叉树
ThreadNode.h template 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 · 1045 阅读 · 0 评论 -
顺序栈
SeqStack.h templateclass 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 · 961 阅读 · 0 评论 -
顺序队列
SeqQueue.h templateclass 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 · 965 阅读 · 0 评论 -
双向循环队列
ListNode.h templateclass 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 · 1409 阅读 · 0 评论 -
树
TreeNode.h template 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 · 1038 阅读 · 0 评论 -
排序
Element.h template class 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 · 1095 阅读 · 0 评论 -
链式栈
StackNode.h templateclass 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 · 916 阅读 · 0 评论 -
链式队列
QueueNode.h template 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 · 882 阅读 · 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 · 897 阅读 · 0 评论 -
二叉树
BinTreeNode.h templateclass 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 · 956 阅读 · 0 评论 -
最小堆
MinHeap.h templateclass 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 · 893 阅读 · 0 评论 -
单链表
ListNode.h templateclass 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 · 1109 阅读 · 0 评论 -
顺序表
Seqlist.h const 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 · 1199 阅读 · 2 评论 -
单循环链表
ListNode.h templateclass 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 · 1127 阅读 · 0 评论 -
排序(理论)
1.插入排序:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表 (1)简单插入排序 (2)折半插入排序 (3)希尔排序:将整个待排记录序列分成若干个子序列分别进行插入排序,待整个序列基本有序时,再对全体记录进行一次直接插入排序 2.交换排序 (1)起泡排序:第i趟起泡排序中从L.r[1]到L.r[n-i+1]依次比较相邻两个记录的关键字,并在逆序时交换相邻原创 2012-02-29 11:26:25 · 1125 阅读 · 0 评论