数据结构
文章平均质量分 67
HelloKTT
一名软件编程初学者,希望在这里可以学到更多,充实自己。
展开
-
C++实现顺序表
顺序表:用一段地址连续的存储单元一次存储数据元素的线性结构。目的:比较数组下来用代码来实现顺序表的各个功能:#includeusing namespace std;typedef int DataType;class Seqlist{public: Seqlist()//构造函数:_a(NULL),_size(0),_capacity(0){}Seqlist原创 2017-07-27 23:36:58 · 297 阅读 · 0 评论 -
C++实现双链表
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。可以向前遍历,也可以向后遍历,双链表中还有一个尾指针。 双链表的操作比单链表要稍微复杂一些,因为删除和插入都要操控一个额外的指针,特别是在双链表的插入中指针的指向顺序是不可修改的。当然双链表可以反向查找结点优于单链表。在操作发生时必须要更新尾指针。#include#i原创 2017-08-05 23:00:03 · 355 阅读 · 0 评论 -
C++模板实现单链表
链表:是一种线性表,但是并不是顺序存储,而是每个节点里面存储着下一个节点的指针,把存储数据元素的数据串链起来。 链表可分为带头结点的和不带头结点的。接下来用代码来展示单链表的各个功能:#includeusing namespace std;templatestruct LinkNode{ LinkNode* _next; T _data;原创 2017-07-28 21:49:05 · 513 阅读 · 0 评论 -
单链表的逆置
对于单链表的逆置一般有两种方法:第一种用非递归法,利用辅助指针,其时间复杂度为O(n)Node* Reverse() //单链表的逆置 { *Node* pre = _head; Node* cur = pre->_next; Node* next = NULL; if(_head原创 2017-07-28 23:35:31 · 1828 阅读 · 0 评论 -
二叉树叶子结点个数和第K层结点的个数
求二叉树叶子结点的个数 1.如果根节点为NULL时,则是空树,返回0; 2.根节点不为空时,如果根节点的左右子树均为空,则该二叉树中只有一个节点,即返回1; 3.叶子节点的个数=左子树叶子节点数+右子树叶子节点数;代码如下:int _GetNodeyezi(Node* root) //叶子节点的个数 {原创 2017-09-08 22:19:26 · 1497 阅读 · 0 评论 -
二叉树的递归和非递归的遍历算法
一、二叉树的概念二叉树:二叉树就是每个结点最多有两个子树的树形存储结构。满二叉树和完全二叉树:满二叉树一定是完全二叉树,但是反过来就不一定。满二叉树的定义是除了叶子结点,其它结点都有左右了两个孩子,深度为k的满二叉树,结点数就是2的k次方减1。完全二叉树是每个结点都与深度为k的满二叉树中编号从1到n一一对应,只有最下面的两层结点度能够小于2,并且最下面一层的结点都集中在该层最左边的若干位置原创 2017-09-08 22:07:08 · 613 阅读 · 0 评论