数据结构
不想在山底徘徊的小蜗牛
走着瞧,才能把未来看的更好。
展开
-
线索二叉树的创建
一、什么是线索二叉树从树的节点类型可以看出,每个节点包含三个部分,lchild data rchild,如果一个节点中没有左右孩子那么lchild 和 rchild中存放的就是空造成资源浪费。而空指针的个数也是可以计算出来的:节点个数为n 。除了根节点,每个节点都被前驱节点指向,因此消耗的指针个数n-1,剩余的空指针个数为2n-(n-1)=n+1这时就想到利用这些指针对树进行线索化。二、中序创建线索二叉树代码typedef struct BiThrNode{ TElemType data;原创 2020-08-16 16:11:36 · 1325 阅读 · 0 评论 -
在不破坏栈中元素情况下获取栈中的最小元素
问题描述需要获取当前栈中的最小元素,不可以破坏当前栈中的元素。问题分析获取当前栈中的最小元素,最小元素出栈了,那么栈中的最小元素需要随之而变。当然可以通过对栈进行遍历,放到另一个栈中,不过这样耗时较长,并且每当需要一个最小值的时候都需要进行遍历。解决方法通过辅助栈,当有新的元素进来的时候和最小值进行比对,如果小于最小值则辅助栈中push新元素的值,新值大于栈顶元素则push栈顶元素。stack_min[++top]=(new<min)?new:min.原始最小值只需要通过获原创 2020-08-14 15:08:45 · 220 阅读 · 0 评论 -
考研中的栈与队列结合代码讲解
栈我们对于栈的中印象最深的一句话就是先进先出。栈是一种逻辑结构,既可以用数组顺序存储又可以用链表链式存储。顺序栈代码实现代码实现解析:利用数组实现栈需要的节点类型为DNode 包含ElemType data[MaxSize];数组存放元素int top;记录栈顶位置初始化时top指向-1含有元素时top指向栈顶元素,因此入栈时判满后需要先++top出栈时需要判空出去之后再将top–指向新的栈顶元素#include<stdio.h>#include<stdlib.h&g原创 2020-08-13 15:53:40 · 209 阅读 · 0 评论 -
算法时间复杂度及其计算
算法概念解决特定问题求解步骤的一种描述。特性输入 : 算法具有0个或多个输入输出 : 算法至少有1个或多个输出有穷性 : 算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成确定性 :算法中的每一步都有确定的含义,不会出现二义性可行性 :算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成算法的效率量度时间复杂度是指执行算法所需要的计算工作量,时间复杂度记做:T(n)=O(f(n))空间复杂度:空间复杂度(Space Complexity原创 2020-08-02 16:22:56 · 1076 阅读 · 0 评论 -
数据结构基本概念总结
名词解释例子: #define MaxSzie 50 typedef struct { ElemType *data; int MaxSzie;} Student;数据结构见名知意,位数据元素之间的关系。包含三个要素:1,逻辑结构逻辑结构指的是元素直接的逻辑关系,和数据的存储没有关系。分为线性结构和非线性结构。2,存储结构数据在存储设备中的存放方式用计算机语言实现逻辑结构。有顺序存储,链式存储,索引存储,散列存储。3,数据的运算定义数据类型是所定义的一系列操作。4,怎样区别逻原创 2020-07-30 22:37:28 · 209 阅读 · 0 评论