数据结构
MAQI77
这个作者很懒,什么都没留下…
展开
-
数据结构第六天————图、以及算法
数据结构 1. 逻辑思维 --> 编辑能力 2. 封装接口 3. 模块化编程 --> .h .c .c 复习树 二叉树 二叉排序树 二叉搜索树 特点:中序遍历的结果是从小到大有序。 今天的内容 1. 二叉树的层次遍历 代码截图 2. 图 a. 概念: 非线性结构,可能有环,可能是有方向的。 b. 图的分类 有向图和无向图 //连通图和非连通图 c. 图的表示方式 V={v0,v1,v2…}; //顶点 R={<v0,v3><v0,v5>…} //有向图 或者 R=原创 2021-07-02 18:22:59 · 77 阅读 · 0 评论 -
数据结构第五天————项目(电子词典)
复习 栈FILO 顺序栈 只能在一端操作的顺序表,建议在表尾进行入栈和出栈 链式栈 只能在一端操作的链表,建议在表头进行入栈和出栈 队列FIFO 顺序队列 入队和出队分别在两端操作的顺序表 顺序表:表头入队,需要移动元素;表尾出队,很方便。 改进办法: 方案1:空间只用一次,例如:讲义中二叉树的层次遍历 struct queue { data_t data[SIZE]; int rear; //表示入队的下标 int front;//表示出队的下标 }; 方案2:空间重复利用,即:循环顺序队列 struct原创 2021-07-01 19:07:51 · 393 阅读 · 0 评论 -
数据结构第三天————栈,队列
单向循环链表 特点: 链表 + 尾结点指向头结点 注意: 在单向不循环链表的基础上修改判断尾结点的条件。 p->pNext == NULL ==> p->pNext == pList 笔试题: 合并两个已知尾结点的单向循环链表。 LIST * mergeList(LIST *pT1,LIST * pT2) { if( NULL == pT1) { return pT2; } if( NULL == pT2) { return pT1; } if( NULL == pT原创 2021-07-01 19:00:40 · 88 阅读 · 0 评论 -
数据结构第二天————链表
复习 数据结构 逻辑结构–线性结构–顺序表+链表 顺序表 (数组) 应用 特点 地址连续 大小固定 紧凑存储 前驱 后继 访问方便 删除和插入的时候,需要移动元素 操作 创建顺序表 增加、插入 删除 查询 修改 销毁顺序表 今天的内容 链表 ==特点 == 地址可以不连续 大小不固定 删除和插入的时候,不需要移动元素,比较方便 访问不方便,只能从头结点开始访问 术语 单向 链表中任意一个结点,只有一个指针域,存放下一个结点的地址。 双向 链表中任意一个结点,有两个指针域,分别存放下一个结点的地址和前一个结点原创 2021-07-01 18:57:38 · 78 阅读 · 0 评论 -
数据结构第一天——————顺序表
数据结构的课程安排 1. 顺序表 2. 链表 3. 栈、队列 4. 树、图 5. 算法 6. 项目 数据结构培养的内容 1. 习惯: 画图–>伪代码–>代码–>运行测试 2. 思维: 逻辑思维 编程思想 3. 能力: 封装接口 调用接口 线性结构 如果当前结点有前驱,那么,它的前驱有且仅有一个。 如果当前结点有后继,那么,它的后继有且仅有一个。 例:数组中有五个元素,现在找到了下标为2的那个元素 前驱: 下标为2-1 后继: 下标为2+1 包含:顺序结构和链式结构 顺序表 特点 *****原创 2021-07-01 18:53:22 · 141 阅读 · 0 评论