当前位置: 首页 > 编程日记 > 正文

python数据结构与算法:单向链表

单链表:python实现及其对应的 增删查检 操作

#####################  P4.1-P4.8 单向链表  ###########################
#coding:utf-8
class Node(object):def __init__(self,elem):self.elem = elemself.next = Noneclass SinglelinkList(object):"""SinglelinkList"""def __init__(self,node = None):#默认参数self.__head = nodedef is_empty(self):return self.__head == Nonedef travel(self):"""遍历链表"""cur = self.__headwhile cur != None:print(cur.elem,end=" ")cur= cur.nextprint("")def length(self):"""length of list 遍历 借助 Cursor 指针或者游标计数"""cur = self.__head#cur游标 遍历节点 不断移动count = 0while cur != None:# cur.next = Nonecount+=1cur = cur.nextreturn countdef __add__(self, item):"""nedd to add node"""node = Node(item)node.next = self.__headself.__head = nodedef append(self,item):node = Node(item)        #node 实例化if self.is_empty():self._head = nodeelse:cur = self.__headwhile cur.next != None:cur = cur.nextcur.next = nodedef insert(self,pos,item):""":param pos  从0 开始 """pre = self.__headcount = 0if pos<0:self.__add__(item)elif pos>(self.length()-1):self.append(item)else:while (count<(pos-1)):count+=1pre = pre.nextnode =Node(item)node.next = pre.nextpre.next = nodedef remove(self,item):cur = self.__headpre = Nonewhile cur!= None:if cur.elem == item:if pre ==None:self.__head=cur.nextelse:pre.next = cur.nextbreakelse:pre = curcur = cur.nextdef search(self,item):cur = self.__headwhile cur!= None:if cur.elem == item:return  Trueelse:cur = cur.nextreturn False# single_obe = SinglelinkList()
if __name__ =="__main__":ll = SinglelinkList()print(ll.is_empty())print(ll.length())ll.append(1)print(ll.is_empty())print(ll.length())ll.append(2)ll.__add__(8)ll.append(1)ll.append(3)ll.append(1)ll.append(3)ll.insert(-1,9)ll.insert(4, 119)ll.insert(8, 1234)ll.travel()
### 9 8 1 3 119 1 3 1234ll.remove(1234)ll.travel()

相关文章:

Vue性能优化:如何实现延迟加载和代码拆分?

移动优先方法已经成为一种标准&#xff0c;但不确定的网络条件导致应用程序快速加载变得越来越困难。在本系列文章中&#xff0c;我将深入探讨我们在Storefront应用程序中所使用的Vue性能优化技术&#xff0c;你们也可以在自己的Vue应用程序中使用它们来实现快速加载。 Webpack…

GitHub怎样fork别人代码到自己仓库并进行贡献

在过程中可能遇到这个问题&#xff1a;https://www.cnblogs.com/q1104460935/p/8275833.html 这个博客应该可以解决 比如说现在有一个很牛逼的项目&#xff0c;我们进入项目地址&#xff0c; 想将这个项目复制到自己的github仓库&#xff0c;然后你还想将 仓库中的代码拉取到…

python数据结构与算法:单向循环列表

单向循环列表&#xff1a;python实现&#xff0c;及其对应的 增删查检 操作 ##################### P4.9-P4.12 循环链表 ########################### #coding:utf-8 class Node(object):def __init__(self,elem):self.elem elemself.next None class SinglecycleList(ob…

http权威指南-http连接管理

2019独角兽企业重金招聘Python工程师标准>>> HTTP连接管理 浏览器解析URL流程&#xff1a; 浏览器解析出域名&#xff1b;浏览器查询这个主机名的IP地址&#xff1b;浏览器获得端口号&#xff1b;浏览器发起到主机名IP地址端口的80连接&#xff1b;浏览器向服务器发…

在macos上基于python2.7安装PyQt5

在macos上基于python2.7安装PyQt5 在python3上面安装PyQt5是十分简单的&#xff0c;可是&#xff0c;在python2.7上安装这个东西&#xff0c;着实让人折腾了一把。要总结一下&#xff0c;年纪大了&#xff0c;记性不好。 首先要安装最新版的Qt和python2&#xff0c;命令如下&am…

python数据结构与算法:二分查找

二分查找&#xff1a;python 实现def binary_seaech(alist,item):"""二分查找 递归实现"""n len(alist)if n > 0:mid n // 2if alist[mid] item:return Trueelif item < alist[mid]:return binary_seaech(alist[:mid],item)else:retur…

使用maven镜像

综述 用maven做项目&#xff0c;最郁闷的莫过于某些依赖库下载不了。被墙了&#xff0c;你懂的。使用maven镜像仓库及其重要&#xff0c;特别是国内的镜像&#xff0c;可以有效缓解被墙疼痛。 常用的镜像 国外镜像 ibiblio.org <mirror> <id>ibiblio</id> &…

Jupyter Notebook 快捷键(基本)

Jupyter Notebook 快捷键 Jupyter Notebook 有两种键盘输入模式。编辑模式&#xff0c;允许你往单元中键入代码或文本&#xff1b;这时的单元框线是绿色的。命令模式&#xff0c;键盘输入运行程序命令&#xff1b;这时的单元框线是灰色。 命令模式 (按键 Esc 开启) Enter : …

关于二叉树的几个必须掌握的实现

The best way to end your fear is to face it yourself. 结束恐惧的最佳办法就是自己面对。本分分享了二叉搜索树的几种实现&#xff0c;由简入繁。说句题外话&#xff0c;马上又是金三银四的季节了&#xff0c;无论跳不跳槽&#xff0c;增加自己的知识储备总是没错的。从代码…

python数据结构与算法:队列与双端队列

双端队列&#xff1a; #################队列#################### #coding:utf-8 """ Deque() 创建一个空的双端队列 add_front(item) 从队头加入一个item元素 add_rear(item) 从队尾加入一个item元素 remove_front() 从队头删除一个item元素 remove_rear() 从…

view5.3登录桌面提示当前可用桌面资源不足

问题描述&#xff1a;用户反馈有个桌面经常提示当前可用桌面资源不足&#xff0c;开始的时候反复重启还可以使用&#xff0c;今天发现彻底无法登录了。解决方法&#xff1a;首先登录到view administrator管理平台查看该桌面发现状态是可用&#xff0c;说明桌面正常&#xff0c;…

【HDU】4706 Children's Day(模拟)

http://acm.hdu.edu.cn/showproblem.php?pid4706 该题没有输入&#xff0c;直接输出不同形状大小的N&#xff0c;在输出不同形状N的时候是要用到26个字母&#xff0c;并且是循环输出 #include <iostream>using namespace std;char map[60][60]; char a[] "abcdef…

详解原生AJAX请求demo(兼容IE5/6)

function createXHR(){ // 检测原生XHR对象是否存在if ( window.XMLHpptRequest ){// 如果存在就返回新实例return new XMLHpptRequest();} else { // 如果不存在就检测ActiveX对象// 兼容IE5/6return new ActiveXObject(Microsoft.XMLHttp);} }// 在所有的浏览器中创建XHR对象…

【POJ】3268 Silver Cow Party (将有向图的边反转)

问题链接&#xff1a;http://poj.org/problem?id3268 【问题描述】 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1…N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectio…

项目管理深入理解08--成本管理

成本管理一章非常的重要&#xff0c;尤其是对于程序员来说&#xff0c;这方面非常的薄弱&#xff0c;但这部分知识无论是在项目管理中还是日常生活中都灰常重要&#xff0c;不然很难成为一个财务自由的程序员。此外&#xff0c;由于财务方面知识点比较多&#xff0c;特增加经济…

python数据结构与算法:双向链表

双向链表&#xff1a; ###################### P4.13-P4. 双向链表 ########################### # import singlelinkListclass Node(object):def __init__(self,item):self.elem itemself.next Noneself.prev None# class DoublelinkList(singlelinkList): #继承 class …

如何开发一个区块链应用程序

区块链是一项巧妙的发明&#xff0c;有望使数字世界更加安全和分散。通过允许数字信息的分发而不是复制&#xff0c;区块链技术创建了一种新型互联网。最初是为数字货币比特币而设计的&#xff0c;现在科技界正在寻找该技术的其他潜在用途。在不久的将来&#xff0c;我们将看到…

python数据结构与算法:栈

栈&#xff1a; Stack() 创建一个新的空栈 push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元素 is_empty() 判断栈是否为空 size() 返回栈的元素个数 Stack() 创建一个新的空栈 push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek(…

【PAT (Basic Level) 】1014 福尔摩斯的约会 (20 分)

大侦探福尔摩斯接到一张奇怪的字条&#xff1a; 我们约会吧&#xff01; 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm大侦探很快就明白了&#xff0c;字条上奇怪的乱码实际上就是约会的时间星期四 14:04&#xff0c;因为前面两字符串中第 1 对相同的…

菜鸟物流云是如何帮助快递合作伙伴解决双11巨大业务负荷的?

物流云双11 双11前&#xff0c;菜鸟物流云共接入12家合作伙伴&#xff0c;全部参加双11大促活动&#xff0c;作为物流云的首次双11&#xff0c;尤其是经过了快递公司的大考经验&#xff0c;事实证明项目是靠谱的。 双11前已经整体上云的快递合作伙伴2家&#xff0c;韵达和天天&…

安装H3C的各种问题

HCL安装完成后&#xff0c;启动HCL失败&#xff1b;提示&#xff1a;“当前系统用户名中包含非ASCII字符”问题&#xff1f;HCL只能安装装在英文路径下&#xff0c;如果用户名为中文或者安装路径有中文目录&#xff0c;就会出现此问题&#xff0c;请确保系统用户名和安装路径中…

前景背景分割——ostu算法的原理及实现 OpenCV (八)

OpenCV 【八】——前景背景分割——ostu算法的原理及实现 实验结果代码实现实现原理参考资料实验结果 代码实现 #include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; //计算图像灰度直方图 Mat calcgrayhist(const Mat&am…

【PAT (Basic Level) 】1015 德才论 (25 分)

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”&#xff1a;“是故才德全尽谓之圣人&#xff0c;才德兼亡谓之愚人&#xff0c;德胜才谓之君子&#xff0c;才胜德谓之小人。凡取人之术&#xff0c;苟不得圣人&#xff0c;君子而与之&#xff0c;与其得小人&#xff0…

浏览器启动外部软件

常可以看见使用浏览器代码启动本地应用的软件.例如qq、迅雷、等等.那么他们是怎么做到的呢? 它的奥秘:Register protocol 前言我们经常看到 tencent://..thunder://这两种开头的网址&#xff0c;往往觉得很奇怪&#xff0c;很想弄懂其中的原理&#xff0c;是如何实现的&#x…

Luogu P1082 同余方程(NOIP 2012) 题解报告

题目传送门 【题目大意】 求关于x的同余方程 ax≡1(mod b)的最小整数解。 【思路分析】 由同余方程的有关知识可得&#xff0c;ax≡1(mod b)可以化为axby1&#xff0c;此方程有解当且仅当gcd(a,b)1&#xff0c;于是就可以用欧几里得算法求出一组特解x0&#xff0c;y0。 那么x0就…

MATLAB【二】————图像做减法,批量文本处理,子图显示

clear; clc; close all;name_string ["1.5ms\100\" ];length strlength(name_string); [m,n] size(length);%%----------------------------- for num1:mstr name_string(num,1); figure(color, [1, 1, 1], position, [0, 0, 1800,800]); % 为区分边界&a…

与数据有关的问题

&#xfeff;&#xfeff;◆ 背景说明 在为用户排查问题&#xff0c;解决问题时&#xff0c;有一种情况是不容易引起大家注意的&#xff0c;那就是用户的数据&#xff1b;比如&#xff0c;数据中有某些特殊字符&#xff0c;引起展现不了或展现不正常&#xff1b;现在&#xff…

【PAT (Basic Level) 】1024 科学计数法 (20 分)

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法&#xff0c;其满足正则表达式 [][1-9].[0-9]E[][0-9]&#xff0c;即数字的整数部分只有 1 位&#xff0c;小数部分至少有 1 位&#xff0c;该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法…

jsp 实栗 jsp + jdbc 登录

jsp 实栗 jsp jdbc 实现登录 实现思路 一个表单页&#xff0c;输入用户登录和密码&#xff0c;然后信息提交到jsp页面进行验证&#xff0c;如果可以服务器跳转到登录成功页&#xff0c;失败&#xff0c;跳转到错误页 跳转的时候窗口的URL地址会发生变化 代码如下 编写登录代码…

OpenCV 【十】——Gamma校正 ——图像灰度变化

Gamma校正&#xff08;C、OpenCV实现&#xff09; 1.作用&#xff1a; Gamma校正是对输入图像灰度值进行的非线性操作&#xff0c;使输出图像灰度值与输入图像灰度值呈指数关系&#xff1a; 伽玛校正由以下幂律表达式定义&#xff1a; 2.函数原型 void calcHist( const Mat*…