程序员的自我修养——数据结构
Void_CM
这个作者很懒,什么都没留下…
展开
-
非线性结构——树
非线性结构——树树定义专业术语分类树的存储二叉树的存储一般树的存储森林的存储二叉树操作遍历先序遍历【先访问根节点】中序遍历【中间访问根节点】后序遍历 【最后访问根节点】已知两种遍历序列求原始二叉树应用树定义有且只有一个称为根的节点有若干个互不相交的子树,这些子树本身也是一颗树通俗来说树由节点和边组成每个节点都有唯一的父节点,和若干个子节点但是只有根节点是例外的,它没有父节点专业术语根节点节点父节点子节点子孙堂兄弟深度:从根节点到最底层节点原创 2020-08-20 23:07:17 · 485 阅读 · 0 评论 -
受限线性表——队列
队列定义分类链式队列——用链表实现静态队列——用数组实现静态队列通常是循环队列循环队列循环队列的操作队列的应用定义一种可以实现"先进先出"的存储结构分类链式队列——用链表实现静态队列——用数组实现静态队列通常是循环队列循环队列静态队列为什么必须是循环队列循环队列需要几个参数来确定需要两个参数来确定:front(队首)和rear(队尾)但是具体含义在不同场合有不同的含义队列初始化front和rear的值都为0队列非空front代表的是队列的原创 2020-08-19 22:59:16 · 165 阅读 · 0 评论 -
受限线性表——栈
栈定义分类静态栈动态栈算法入栈压栈相关操作应用函数调用中断表达式求值内存分配缓冲处理迷宫……——线性结构的两种常见应用之一定义一种可以实现“先进后出”的存储结构分类静态栈——基于数组动态栈——基于链表算法入栈压栈相关操作#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct Node{ int data; struc原创 2020-06-24 22:30:00 · 212 阅读 · 0 评论 -
链式存储——链表及相关操作
链表定义注意区别分类对链表的操作算法链表的优缺点优点缺点定义n个节点离散彼此通过指针相连每个节点只有一个前驱节点;也只有一个后续节点首节点没有前驱节点,尾节点没有后续节点注意区别—为什么引入头节点?——为了便于对链表的操作头节点:第一个有效节点之前的节点,头节点并不存放有效数据,头节点的数据类型和首节点的一样头指针:指向头节点的指针变量首节点:第一个有效节点尾节点:最后一个有效节点,指针域为NULL尾指针:指向尾节点的指针变量—确定一个量表需要几个原创 2020-06-24 22:26:02 · 201 阅读 · 0 评论 -
连续存储——动态数组及相关操作实现
数组——连续存储什么是数组?元素类型相同 大小相等在内存内连续存放数组的优缺点优点存储元素的效率高缺点实现要知道数组的长度需要大块连续的内存空间插入删除的操作效率低动态创建数组相关操作实现#include<stdio.h>#include<malloc.h>#include<stdlib.h>//定义结构体Arr(数组)struct Arr{ int * pBase; //第一个元素的地址原创 2020-06-24 21:51:49 · 338 阅读 · 0 评论 -
数据结构学习笔记(二)
算法与算法评价思维导图基本概念算法:语句频度时间复杂度空间复杂度时间复杂度的计算循环主体中的变量参与循环条件的判断循环主体中的变量与循环条件无关递归型思维导图基本概念算法:对特定问题求解步骤的一种描述,是指令的有限序列,其中的每条指令表示一个或多个操作。语句频度该语句在算法中被重复执行的次数,算法中所有语句的频度之和记为 T(n)T\left( n \right)T(n)...原创 2020-04-18 16:06:33 · 574 阅读 · 0 评论 -
数据结构学习笔记(一)
数据结构学习笔记(一)思维导图基本概念数据数据元素数据对象数据类型数据结构数据结构三要素逻辑结构与物理(存储)结构的关系逻辑结构(后续)物理(存储)结构对比思维导图基本概念数据 信息的载体,所有能够输入到计算机中并被计算机程序识别和处理的符号的集合数据元素 数据的基本单位(整体)eg.学生记录 数据对象 相同性质的数据元素的集合 eg.整数数据类型 一...原创 2020-04-18 13:37:21 · 358 阅读 · 0 评论