数据结构
forwardNow
持续学习
展开
-
01-数据结构_学习大纲
参考自: 郝斌 数据结构视频数据结构概述预备知识模块一: 线性结构 连续存储[数组] 离散存储[链表] 线性结构的两种常见应用之一 栈 线性结构的两种常见应用之二 队列 专题: 递归 1, 1+2+3+...+99+100 的和原创 2013-07-17 20:46:49 · 908 阅读 · 0 评论 -
03-数据结构_预备知识-指针
1) 指针的重要性 指针是C语言的灵魂2) 定义 A)地址: 内存单元的编号 从0开始的非负整数 范围: 0 ~ FFFFFFFFH(4G-1) B)指针: 指针就是地址, 地址就是指针.(指针,地址,内存单元编号, 两两等价) 指针变量: 存放 地址(内存单元编号) 的变量原创 2013-07-22 12:07:10 · 826 阅读 · 0 评论 -
04-数据结构_预备知识-结构体
1, 为什么会出现结构体 为了表示一些复杂的数据,而普通的基本数据类型无法满足需求.2, 什么叫结构体 用户根据实际需要,自定义的复合数据类型 03-struct.c #include #include // strcpy(targetStrVar, string)// 定义结构体struct Student{ int si原创 2013-07-22 22:00:30 · 1120 阅读 · 0 评论 -
05-数据结构_预备知识-动态内存的分配和释放
参看 C语言部分1, 分配 malloc2, 释放 free3, 增删 realloc#include #include int main(void){ int len; printf("please input array's length = "); scanf("%d", &len);原创 2013-07-22 22:31:30 · 861 阅读 · 0 评论 -
06-数据结构_预备知识-跨函数使用内存
参看 C语言部分#include #include #include /*跨函数使用内存1, 在A函数中 使用了一块内存2, 在A函数结束后, B函数仍然可以使用 这块内存本例:1, 在createStudent函数中, 创建了结构体2, 在printStudent函数中, 使用了该结构体*/struct Student{ int id; char na原创 2013-07-22 23:23:32 · 971 阅读 · 1 评论 -
07-数据结构_线性结构-连续存储-数组
线性结构1, 概念 把所有的结点用一根直线串起来2, 分类 (1) 连续存储[数组] (2) 离散存储[链表]数组1, 什么叫做数组 一组 相同数据类型变量 的集合. 2, 数组的优缺点 参看 C语言部分 3, 实现Java中的ArrayList 04-array_1.c原创 2013-07-26 09:24:26 · 905 阅读 · 0 评论 -
08-数据结构_线性结构-离散存储-链表_1
离散存储[链表]一, 连续 与 离散 如图 05-离散与连续.jpg 二, 定义1, 什么是链表 1) n个结点离散分配 2) 结点之间通过指针相连 3) 首结点 没有前驱结点, 尾结点 没有后继结点 4) 每个结点(除首尾结点), 有且仅有一个前驱结点, 有且仅有一个后续结点2, 补充如图 05-链原创 2013-07-27 15:57:01 · 838 阅读 · 0 评论 -
09-数据结构_线性结构-离散存储-链表_插删伪算法
1, 删除结点 (1) 结点: A, B, C. 删除B (2) 算法 ① 结点A 的后续节点 为 结点B ② 释放结点B所占的内存2, 插入节点 (1) 结点: A, C. 在A后插入B (2) 算法 ① 结点A 的后续节点 为 结点B ② 结点B 的后续节原创 2013-07-27 16:57:46 · 846 阅读 · 0 评论 -
10-数据结构_线性结构-离散存储-链表_创建与遍历链表
#include #include #include typedef struct Node{ int data; // 数据域 struct Node * pNext; // 指针域} NODE, * PNODE; // NODE struct Node, PNODEstruct Node *// 动态创建非循环单链表, 并返回头指针PNODE crea原创 2013-07-27 20:38:48 · 1165 阅读 · 0 评论 -
11-数据结构_链表相关操作
// 动态创建非循环单链表, 并返回头指针PNODE createList(void);// 遍历链表void traverseList(PNODE pHead);// 是否为空bool isEmpty(PNODE pHead);// 链表长度int listSize(PNODE pHead);// 插入一个元素, pos-位置(首结点为索引为1), value-插原创 2013-07-28 13:47:06 · 932 阅读 · 0 评论 -
12-数据结构_栈
线性结构的常见应用之一 栈一, 定义 一种可以实现"先进后出"的存储结构(存储方式)二, 分类 如图 06-静态栈-动态栈.jpg 1, 静态栈 底层 以 静态数组 实现 2, 动态栈 底层 以 链表 实现三, 算法1, 节点 Node, 栈 Stac原创 2013-07-28 21:32:40 · 905 阅读 · 0 评论 -
13-数据结构_队列
线性结构的两种常见应用之一 队列一, 定义 一种可以实现"先进先出"的存储结构. 两端操作, 一端只能入, 另一端只能出 补充: front : 队首 rear : 队尾 入队 : 队尾操作 出队 : 队首操作 二, 分类 1, 链式队列[链表]原创 2013-07-30 22:13:24 · 955 阅读 · 0 评论 -
14-数据结构_队列-算法实现
---------------------------------定义 循环队列初始化 队列入队出队遍历是否已满是否已空---------------------------------定义 循环队列// 定义 循环队列typedef struct Queue{ int * pBase;// 底层数组原创 2013-07-30 22:20:57 · 873 阅读 · 0 评论 -
15-数据结构_递归
递归一, 定义 一个函数自己直接或间接调用自己引用 《数据结构(C语言版)》严蔚敏 吴伟民 P56 一段话: 通常, 当在一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需要完成三件事: 1, 将所有的实参、返回地址等信息传递给被调用函数保存 2, 为被调用函数的局部变量分配存储区 3, 将原创 2013-07-31 20:36:47 · 996 阅读 · 0 评论 -
16-数据结构_递归_汉诺塔-图解与实现
一, 图解二, 实现#include /*n: 需要移动的盘子数A: 存放盘子的柱子, 即需要被移动 n 个盘子的柱子B: 临时 存放盘子的柱子C: 把盘子n个盘子移动到那个柱子*/void hanoiTower(int n, char A, char B, char C){/* if ( 只有一个盘子 ) //原创 2013-08-01 21:32:55 · 1686 阅读 · 0 评论 -
17-数据结构_逻辑结构和物理结构
逻辑结构 1, 线性 (1) 数组 (2) 链表 栈和队列是一种特殊的线性结构. 2, 非线性 (1) 树 (2) 图 物理结构 内存是线性的一维结构逻辑结构有 1, 集合结构 2, 线性结构 3, 树原创 2013-08-01 22:29:32 · 1075 阅读 · 0 评论 -
18-数据结构_树-定义和分类
树一, 定义1, 专业定义 (1) 有且仅有一个称为根的结点 (2) 有若干个互不相交的子树 (3) 子树也是一棵树2, 通俗定义 (1) 树由结点和连线组成 (2) 每个结点只有一个父结点, 可以有多个子结点 (3) 但有一个结点例外, 该结点没有父节点, 此结点称为根结点3, 专业术语 (原创 2013-08-01 23:44:47 · 1988 阅读 · 0 评论 -
19-数据结构_树-存储
存储 1, 二叉树的存储 1) 连续存储[完全二叉树] 面临两个问题 A. 有效节点存到线性的结构(数组) B. 将线性存储的有效结点还原成以前的树 解决这两个问题 A. 可通过先(中/后)序转换成线性结构 B. 用无效结点将二叉树补充成完全二叉树原创 2013-08-03 15:00:05 · 1032 阅读 · 0 评论 -
20-数据结构_树-操作-遍历_树的应用
四, 操作(通常为二叉树的操作)1, 树的遍历 将非线性的树转换成线性的,有三种规则: 1) 先序遍历 根 左 右: A. 先 访问根结点 B. 再 先序 访问左子树 C. 后 先序 访问右子树 2) 中序遍历 左 根 右 3) 后序遍历原创 2013-08-03 22:16:22 · 1301 阅读 · 0 评论 -
21-数据结构_链式二叉树-遍历实现
零, 链式二叉树一, 结点定义// binary tree nodetypedef struct BTNode{ char data; struct BTNode * pLChild; // 指向左孩子 struct BTNode * pRChild; // 指向右孩子} BTNode, * PBTNode;二, 先序遍历//原创 2013-08-08 14:59:30 · 1030 阅读 · 0 评论