![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 98
该专栏包括的题目涉及数据结构。
XiaoZheng2003
博客暂时弃更
展开
-
栈stack
stack的概念栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 如上图,栈当中最先进去的最后出来。 这就是stack遵循原创 2017-04-28 14:00:22 · 844 阅读 · 0 评论 -
C++指针
概念有时你申请一个变量(如int x;),计算机就会随机给你分配一个空间,你可以在那个空间内改变数值。就像计算机给了一个叫做a的小房子,但是只能在里面放int类型的值。比如你输入x=-1,计算机首先会把小房子找到,然后把-1放在里面。(如果里面有其他值,就拿出来) 那这个小房子的地方在哪里呢,就存放在地址里。每一个变量都有一个地址(即是它在内存中的位置)。所谓指针就是一个箭头→,指向一个地址,原创 2017-05-16 18:54:28 · 664 阅读 · 0 评论 -
结构体
结构体概念在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。 在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用。在原创 2017-04-28 13:34:02 · 804 阅读 · 0 评论 -
线段树基础知识(续)
经过上次线段树的基本讲解,这次我们就专门来看几道例题。---------------------------------------------------------------------------------------------------------问题 D(1911): 【高级数据结构】线段的条数题目描述无限长的X轴上从下向上依次叠放一定长度某种原创 2017-03-23 14:04:40 · 715 阅读 · 0 评论 -
线段树基础知识
线段树的概念在一类问题中,我们需要经常处理可以映射在一个坐标轴上的一些固定线段,例如说映射在OX轴上的线段。由于线段是可以互相覆盖的,有时需要动态地取线段的并,例如取得并区间的总长度,或者并区间的个数等等。一个线段是对应于一个区间的,因此线段树也可以叫做区间树。线段树的构造思想线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。每一个叶子节点表示了一个单位区间。根节点表示的是“整体”原创 2017-03-11 10:17:15 · 1313 阅读 · 0 评论 -
二叉查找树
普通二叉查找树二叉查找树是指具有下列性质的非空二叉树若根结点的左子树不空,则左子树的所有结点值均小于根结点值;若根结点的右子树不空,则右子树的所有结点值均不小于根结点值;根结的左右树也分别为二叉排序树;显然,对二叉排序树进行中序遍历,可得出结点值递增的排序序列。 下图即是一棵二叉查找树。其中序遍历为8,11,23,39,46,68,71,75。树的基本操作const int MAXN =原创 2017-03-27 13:58:53 · 901 阅读 · 4 评论 -
树状数组基础知识
问题提出已知数组a[],元素个数为n,现在要求a数组中i到j区间内的和(1<=i<=j<=n).思考我们完全可以存储sum[1,k](k=1,2,……),然后对任意给定的查找区间[i,j],都可以方便的用ans=sum[1,j]-sum[1,i-1],当然这只是没有元素改变的情况下的比较优化的解法.那么对于对于数组中的元素随时变更的情况下,我们能否还这么做呢?如果仍然采取这样的方法,则每次数据有更新原创 2017-03-04 10:53:39 · 644 阅读 · 0 评论