用Python 来实现 C语言中 线性表的链式存储结构。

文章转载请注明:  Python 数据结构 之 线性表 的链式存储结构

代码地址

https://github.com/WenkeZhou/PythonDataStructure/blob/master/struct/List/MyLKList.py

# !/usr/bin/env python
# -*- coding: utf-8 -*-__author__ = 'MrHero'class SqList(object):def __init__(self, size):self.data = list(None for _ in range(size))self.length = 0self.max_size = sizedef add_item(self, item):"""添加单个item:param item::return:"""if self.length < self.max_size:self.data[self.length] = itemself.length += 1else:raise IndexError("List is full !")def create_list(self, tar_list):"""添加一个list到序列表中:param tar_list::return:"""for i, item in enumerate(tar_list):if self.length >= self.max_size:raise IndexError("List is full!")else:self.add_item(tar_list[i])def delete(self, i):"""删除位置为i的节点的值:param i::return:"""if i > self.length or i <= 0:raise IndexError("Index is out of range")else:j = iwhile j < self.length:self.data[j-1] = self.data[j]j += 1self.data[self.length - 1] = Noneself.length -= 1def get_elem(self, i):"""返回位置为i的节点的值:param i::return:"""if i > self.length or i <= 0:raise IndexError("Index is out of range")else:return self.data[i-1]def get_location(self, elem):"""返回第一个节点值为elem的位置:param elem::return:"""for i, item in enumerate(self.data):if item == elem:return i+1return -1def show_list(self):"""输出序列表中所有的元素:return:"""for i, item in enumerate(self.data):if item is not None:print self.data[i],else:print ''breakif __name__ == '__main__':sql = SqList(10)ll = [1, 2, 3, 4, 5]sql.create_list(ll)sql.show_list()sql.delete(1)sql.show_list()sql.get_elem(4)b = sql.get_location(3)print b

文章转载请注明:  Python 数据结构 之 线性表 的链式存储结构

Python 数据结构 之 线性表 的链式存储结构相关推荐

  1. 数据结构和算法:(3)3.2线性表的链式存储结构

    线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素也就是说你这个可以放在A地点,这个可以放在E地点,A地点和E地点中间可以隔开一个C地点和D地点,这样是允许的),这组存储单元可以存在 ...

  2. 从零开始学数据结构和算法(二)线性表的链式存储结构

    链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...

  3. 《数据结构》c语言版学习笔记——其他链表(线性表的链式存储结构Part2)

    线性表的链式存储结构 数据结构系列文章 第三章 循环链表.双向链表 文章目录 线性表的链式存储结构 前言 一.循环链表 (一)定义 (二)尾指针 二.双向链表 (一)定义 (二)代码 总结 前言 提示 ...

  4. 《数据结构》c语言版学习笔记——单链表结构(线性表的链式存储结构Part1)

    线性表的链式存储结构 数据结构系列文章 第二章 单链表结构 文章目录 线性表的链式存储结构 前言 一.单链表的建立 代码 二.单链表的读取 代码 三.单链表的插入 代码 四.单链表的删除 代码 五.单 ...

  5. 【数据结构】CH2 线性表的链式存储结构

    目录 一.链表概述 1.相关定义 二.单链表 1.插入和删除节点的操作 (1)插入结点 (2)删除结点 2.建立单链表 (1)头插法 (2)尾插法 3.线性表基本运算在单链表中的实现 (1)初始化线性 ...

  6. 数据结构-线性表(链式存储结构)

    线性表(链式存储结构) 特点: 用一组任意的存储单元存储线性表的数据结构,这组存储单元可以是连续的,也可以是不连续的. 对数据结构ai来说,除了存储其本身的信息之外,还需存储一个指示其后继的信息(即直 ...

  7. 数据结构开发(5):线性表的链式存储结构

    0.目录 1.线性表的链式存储结构 2.单链表的具体实现 3.顺序表和单链表的对比分析 4.小结 1.线性表的链式存储结构 顺序存储结构线性表的最大问题是: 插入和删除需要移动大量的元素!如何解决? ...

  8. 链表list(链式存储结构实现)_5 线性表的链式存储结构

    系列文章参考资料为<大话数据结构>,源码为个人私有,未经允许不得转载 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,可以使连续的,也可以不连续,也就意味这些元素可以 ...

  9. 什么是线性表?什么是线性表的顺序存储结构?什么是线性表的链式存储结构?

    1.线性表是最简单也是最常用的一种数据结构.线性表的例子不胜枚举,例如,英文字母表就是一个线性表,表中的英文字母是一个数据元素. 2.线性表的定义:线性表是具有相同特性的数据元素的一个有限序列. 3. ...

最新文章

  1. vmstart的用法
  2. 比较两个表格的不同_给你两个表格,如何快速核对其中不同数据?
  3. 人工脑连接体:类脑人工智能的奇点时刻来临
  4. Redis进阶-如何发现和优雅的处理BigKey一二事
  5. 安卓电视版linux,MythTV 30.0 发布,前端支持选择Android电视设备
  6. ./configure 参数解析
  7. 很酷的word技巧---删除行前的空格
  8. linux svn 自动发布,linux svn tomcat maven 自动发布打包
  9. 无人值守的自动 dump(二)
  10. PAT:组个最小数(C++)
  11. Hadoop系列之DistributedCache用法
  12. 苹果手机收不到推送信息_[赞助信息]拜仁签约新赞助商 球员将被禁用苹果手机...
  13. sublime text3 常用配置
  14. Cookie、Session和自定义分页
  15. Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换
  16. python从入门到实践课后答案-Python编程:从入门到实践(课后习题8)
  17. win10系统如何解除端口占用
  18. pygame详细安装教程
  19. 在arm-linux上用gdb调试程序,出现“Program received signal SIGPIPE, Broken pipe”
  20. 关于win11兼容性视图模式

热门文章

  1. STM32单片机(1) 总记 学习资料+参考手册+LED灯
  2. MATLAB实现(7,4)汉明码的编码解码纠错及BER的分析
  3. 贼野牧台服2200+心得
  4. Mysql索引的本质深入浅出(一)
  5. redis集群模式登陆
  6. 介绍3种ssh远程连接的方式
  7. 永恒之蓝漏洞获取桌面截图
  8. 在应急响应过程中,有什么好的方法可以寻找某一日期创建的文件?
  9. python接口自动化--接口测试工具介绍(详解)
  10. 索尼Alpha系列相机通过照片读取快门次数的在线工具