| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 线性表的顺序表示和实现 -> 正文阅读 |
|
[数据结构与算法]线性表的顺序表示和实现 |
线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。数据元素是一个抽象的符号,其具体含义在不同的情况下一般不同。 线性表具有以下特点: 1.简单 好实现 2.逻辑上相邻,物理上也相邻 3.插入的时间复杂度为o(n) 尾插的时候时间复杂度为o(1) 4.删除时间复杂度o(n) 尾删除的时间复杂度为o(1) 5.随机访问时间复杂度为o(1) 有数组下标帮忙 线性表结构体设计:
初始化
在堆区申请 10个初始ELEM_TYPE空间返回给 plist->data? 此时顺序表的长度为 0? ? ?容量大小为INIT_SIZE(10) 按位置插入?
①插入操作需要对pos进行判断pos必须大于0且不能大于plist->length? 若大于length则不满足顺序表逻辑上相邻,物理上也相邻的特点 ②进行判满,若顺序表已满则先扩容再进行后续操作 ③进行插入操作,若要插入的位置已有数据则需要将pos后的数据整体向后移动一个位置 ④插入数据 length+1
类比插入操作将 将pos后的所有数据向前移动一个单位覆盖pos位置的数据即可 查找值为val的节点? 找到等于val值的最小节点
对plist->data进行遍历 找到下标最小的节点 返回下标 按值删 ?删除这个值出现的第一次的位置
此处调用Search 返回要删除值的位置再调用 按位置删除Del_pos即可 扩容? 二倍扩容
先申请一个newdata 将realloc申请到的空间返回给newdata 若newdata不为空 则将plist->data指向newdata realloc申请空间时如果失败则会返回NULL 会导致此前写入的数据丢失? 此时用newdata接收realloc的返回值即使空间申请失败数据值仍保存在plist->data中 其余
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 6:52:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |