| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【数据结构-浙大-陈越】2.1 线性表、顺序存储及其操作 -> 正文阅读 |
|
[数据结构与算法]【数据结构-浙大-陈越】2.1 线性表、顺序存储及其操作 |
引子:一元多项式表示分析多项式特点,找到关键数据,进行表示:
方法1:顺序存储结构直接表示数组各分量对应多项式各项。 好处是:每个下标对应多项式中的一项,多项式相加运算 == 两个数组对应分量相加。缺点是:当多项式次数n很大,但中间很多项为0时,十分浪费空间。比如 方法2:顺序存储结构表示非零项每个非零项主要包含两个信息:系数?和 指数 ,于是可以将 一个多项式看作由二元组(, )组成的集合。 使用结构数组表示:数组分量包含 系数?和 指数 ,比如,可表示为有序数组?。 当做加法运算时,对p1和p2进行合并排序,联想到leetcode 88:合并两个有序数组,排序思想是 使用双指针,比较数组头部指数,并将较大的放在前面,移动指针,再继续比较,直到遍历完数组中所有元素。 方法3:链表结构存储非零项链表中每个结点 存储多项式的一个非零项,包括系数和指数两个数据域 和 一个指针域。类似 (coef, expon, link).
线性表及顺序存储什么是线性表 (Linear List)?由同类型数据元素构成的 有序序列的线性结构。
线性表的抽象数据类型描述类型名称: 线性表 Linear List 数据对象集:同类型数据? 构成的有序序列 线性表的基本操作有:
线性表如何存储?如何实现线性表的基本操作?方法1:利用数组Array存放使用数组的 连续存储空间,顺序存放线性表中的各个元素 数组实现线性表代码:github方法2:使用链表实现线性表顺序存储不要求逻辑上相邻的两个元素在物理上也相邻,即存放数据时不必要求一定使用连续的内存空间,元素之间的逻辑关系是通过"链"建立起来的。
链表实现线性表代码:github广义表与多重链表二元多项式表示问题? 什么是广义表(generalized list)?线性表的推广,元素不仅可以是单元素,也可以是子表sublist。 tag:标志域,0表示结点为单元素,1表示结点为子表 union:联合,子表指针域sublist 与 单元素数据域 data 复用,即共用存储空间 多重链表链表中的结点可能同时隶属于多个链。多重链表中结点的指针域会有多个,比如包含Nex和SubList 两个指针域;但是,双向链表包含了2个指针域,但它不是多重链表。 多重链表用途广泛,比如 树、图这样相对复杂的数据结构都可以采用多重链表方式来实现存储。 使用典型的多重链表—十字链表来存储 稀疏矩阵(二维数组)
使用union 将这两个指针域 放在同一个空间中。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:43:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |