python 链表的增删改查
class Node: # 创建但个结点的对象def __init__(self, val):self.data = valself.next = Nonedef init_list(head_ptr): # 初始化链表操作head_ptr.next = Noneptr = head_ptrinit_data = [82, 76, 83, 53, 74]for data in init_data:new_node = Node(data)new_node.next = Noneptr.next = new_nodeptr = ptr.nextdef add_node(head_ptr, value): # 在尾部添加一条数据while True:head_ptr = head_ptr.nextif not head_ptr.next:head_ptr.next = Node(value)breakdef Insert_data_index(head_ptr, index, value): # 在指定位置插入值 移动数据 n-i+1 平均(n+1)/2i = 0new_node = Node(value)ptr = head_ptrif index == 0:new_node.next = head_ptr.nexthead_ptr.next = new_nodeelse:while True:ptr = ptr.nextif (index - 1) == i:new_node.next = ptr.nextptr.next = new_nodebreakif not ptr.next:breaki += 1if index > i:ptr.next = new_nodedef Insert_data_value(head_ptr, loc_value, value): # 根据值插入 移动数据 n-i+1 平均(n+1)/2new_node = Node(value)flag = Falseptr = head_ptrif loc_value == head_ptr.next.data:new_node.next = head_ptr.nexthead_ptr.next = new_nodeelse:while True:if ptr.next.data == loc_value:new_node.next = ptr.nextptr.next = new_nodeflag = Falsebreakelse:flag = Trueptr = ptr.nextif not ptr.next:breakif flag:ptr.next = new_nodedef Del_Node_Index(head_ptr, index): # 通过索引地址删除数据 需要移动最好0个最多 n-i 平均(n-1)/2flag = Falsei = 0ptr = head_ptrif index == 0:head_ptr.next = head_ptr.next.nextflag = Trueelse:while True:ptr = ptr.nextif not ptr.next:breakif (index - 1) == i:ptr.next = ptr.next.nextflag = Truebreaki += 1return flagdef Del_Node_Value(head_ptr, value): # 通过索引地址删除数据 需要移动最好0个最多 n-i 平均(n-1)/2flag = Falseptr = head_ptr.nextif head_ptr.next.data == value:head_ptr.next = head_ptr.next.nextflag = Trueelse:while ptr:if ptr.next.data == value:ptr.next = ptr.next.nextflag = Truebreakptr = ptr.nextreturn flagdef Query_data_index(head_ptr, index):flag = Falsei = 0ptr = head_ptr.nextwhile ptr:if i == index:flag = Truereturn ptr.dataptr = ptr.nexti += 1if not flag:return flag == -1def Query_data_value(head_ptr, value):flag = Falsei = 0ptr = head_ptr.nextwhile ptr:if ptr.data == value:flag = Truereturn iptr = ptr.nexti += 1if not flag:return flag == -1def Print_all(ptr): # 输出所有数据while True:ptr = ptr.nextif not ptr:breakprint(ptr.data, end="\t")if __name__ == '__main__':head = Node(None) # 初始化头结点init_list(head) # 初始化链表add_node(head_ptr=head, value=999)add_node(head_ptr=head, value=99)Insert_data_index(head, 9, 8848)Insert_data_value(head, 823, 9992)Print_all(ptr=head) # 输出所有数据print()Del_Node_Index(head, 5)Print_all(ptr=head) # 输出所有数据Del_Node_Value(head, 9992)print()Print_all(ptr=head) # 输出所有数据print()print(Query_data_index(head, 2))print(Query_data_value(head,99))
python 链表的增删改查相关推荐
- 通用版!完整代码,单链表SingleLinkedList增删改查,反转,逆序,有效数据等Java实现
文章目录 节点类 链表类(主要) 测试类 小结 节点类 可以根据需要,对节点属性进行修改.注意重写toString()方法,以便后续的输出操作. //节点类 class Node {public in ...
- python实现hbase增删改查
一.hbase shell创建命名空间 hbase shell create_namespace "gofish" 二.python实现hbase增删改查 # -*- coding ...
- 单链表实现增删改查(含头结点)
** 单链表实现增删改查(含头结点) ** **## 单链表** package com.Linked;public class HeadLinked {public String name;// 链 ...
- C语言 单链表的增删改查
单链表的增删改查 目录 单链表的增删改查 链表的创建和输出(有头结点) 链表的查找 链表的删除 链表的修改 链表是一种最常见地采用动态存储分配方式的数据结构,相较于数组而言它更加灵活. 单链表的特点 ...
- 2020-12-13# **链表的增删改查,逆置**
链表的增删改查,逆置,长度,排序,是否为空 1.``准备阶段## ## # include<stdio.h> # include<stdlib.h>typedef struct ...
- 带头节点单链表的增删改查
单链表有很多结构循环单链表,有头节点的单链表,无头节点的单链表,双节点单链表,以下源码是以有一个头节点的单链表为例写的增删改查的各种功能,就是下图 然后各个注释也在函数后面写着,这玩意确实还挺难,源码 ...
- java单链表 提供增删改查_java实现单链表增删改查的实例代码详解
package 数据结构算法.链表; /* *定义节点 * 链表由节点构成 */ public class node { private e e; //数据data private node next ...
- python对excel增删改查语句_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
- python对excel增删改查_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
最新文章
- 方舟原始恐惧mod生物代码_主播在《方舟生存进化》成功打造幽灵城堡,可怕的怪物在这里横行...
- Leaflet中使用leaflet-echarts插件实现Echarts的Migration迁徙图
- java连接数据库sql server_将SQL Server数据库连接到Java
- CS184.1X 计算机图形学导论 第8讲 学习笔记
- 软件测试面试-测试的目的是什么?【高频】
- DensePose开源了,2D变3D人体姿势实时识别 | Facebook@CVPR 2018
- zookeeper OOM问题排查
- DCL文件里面的数据怎么给LSP,button控件
- 大智慧加密指标源码恢复,指标破解工具
- vivado2017.4开发vc707(virtex7)(一)上电调试
- 整个AppData目录挪到D盘方法
- 3D NAND“大连造”
- python opencv合并图片
- 有内鬼,终止换脸!用Landmarks Debug找出不老实的脸。
- 1-AO3402MOS管使用
- 打开jpg显示没有注册类 打开txt显示找不到文件位置 画图板也打不开,总之微软默认的应用都打不开 解决方案如下:
- Android SDK介绍
- 看论文需要用到的一些专业词汇【SOTA,Benchmark,Baseline】
- Prometheus和Grafana告警服务创建与对接腾讯云短信告警平台(prometheus_alert)
- 叶武滨老师时间管理学习感悟
热门文章
- html怎么比较时间,javascript怎么对比日期?
- 项目风险管理的5大关键点,你做了几点?
- 生活随笔:天热得让人烦躁
- 关于H5 开发app应用 移动端无法访问后台服务的总结
- ofice2007 没有下拉框模糊查询功能
- python wordcloud mask_python通过wordcloud绘制词云
- html5 泡泡堂,HTML5 拖放 - 彩色泡泡糖的个人空间 - OSCHINA - 中文开源技术交流社区...
- 小程序iPhonex适配
- 【LSTM车速预测】基于matlab麻雀算法优化LSTM车速预测(含前后对比)【含Matlab源码 2063期】
- 笑话:流传硅谷的一则冷笑话