Backend Development
Python Tutorial
[Python Learning] Python syntax implementation of one-way circular linked list[Python Learning] Python syntax implementation of one-way circular linked list
##all in previous studies It is a linked list implementation written in C language. Today I will take you to learn to write a one-way circular linked list in python.
Linked listLinked list is a common basic data structure. It is a linear list, but it does not store data continuously like a sequential list. Store the location information (ie address) of the next node in each node (data storage unit). ![[Python Learning] Python syntax implementation of one-way circular linked list](https://img.php.cn/upload/article/000/000/031/dbec2699097c7d7f691dd6f111cde69d-0.png?x-oss-process=image/resize,p_40)
![[Python Learning] Python syntax implementation of one-way circular linked list](https://img.php.cn/upload/article/000/000/031/45e9426711227a16912463612809b4d8-1.png?x-oss-process=image/resize,p_40)
class Node(object):
"""结点类"""
def __init__(self, item):
self.item = item
self.next = None
class CyclesSingleLinkList():
"""单向循环链表"""
def __init__(self, node=None):
self.__head = node
def is_empty(self):
"""链表是否为空
:return 如果链表为空 返回真
"""
return self.__head is None
def length(self):
"""链表长度"""
# 如果是空链表
if self.is_empty():
return 0
cur = self.__head
count = 1
while cur.next != self.__head:
count += 1
cur = cur.next
return count
def travel(self):
"""遍历整个链表"""
if self.is_empty():
print("")
return
cur = self.__head
while cur.next != self.__head:
print(cur.item, end=" ")
cur = cur.next
# 从循环退出,cur指向的是尾结点
print(cur.item)
def add(self, item):
"""链表头部添加元素
:param item: 要保存的具体数据
"""
node = Node(item)
if self.is_empty():
self.__head = node
node.next = node
# 寻找尾结点
cur = self.__head
while cur.next != self.__head:
cur = cur.next
# 从循环中退出,cur指向尾结点
node.next = self.__head
self.__head = node
cur.next = self.__head
def append(self, item):
"""链表尾部添加元素"""
node = Node(item)
#如果列表为空,直接添加结点
if self.is_empty():
self.__head = node
node.next = node
else:
cur = self.__head
while cur.next != self.__head:
cur = cur.next
#退出循环的时候,cur指向尾结点
cur.next = node
node.next = self.__head
def insert(self, pos, item):
"""指定位置添加元素"""
# 在头部添加元素
if pos <= 0:
self.add(item)
# 在尾部添加元素
elif pos >= self.length():
self.append(item)
else:
cur = self.__head
count = 0
while count < (pos - 1):
count += 1
cur = cur.next
# 退出循环的时候,cur指向pos前一个位置
# node插入到pos位置前
node = Node(item)
node.next = cur.next
cur.next = node
def remove(self,item):
"""删除结点"""
if self.is_empty():
return
# 当前游标
cur = self.__head
# 当前游标的上一个游标
pre = None
while cur.next != self.__head:
# 找到了要删除的元素
if cur.item == item:
# 在头部找到了元素
if cur == self.__head:
# 先找到尾结点
rear = self.__head
while rear.next != self.__head:
rear = rear.next
# 退出循环后,rear指向尾结点
self.__head = cur.next
rear.next = self.__head
else:
# 在中间位置找到了元素
pre.next = cur.next
return
# 不是要找的元素,移动游标
pre = cur
cur = cur.next
# 退出循环后,cur指向尾结点
if cur.item == item:
# 链表只有一个节点
if cur == self.__head:
self.__head = None
else:
pre.next = self.__head
def search(self,item):
"""查找结点是否存在"""
if self.is_empty():
return False
cur = self.__head
while cur.next != self.__head:
if cur.item == item:
return True
cur = cur.next
# 退出循环后,cur指向为尾结点
if cur.item == item:
return True
return False
if __name__ == '__main__':
ll = CyclesSingleLinkList()
print(ll.length())
ll.travel()
ll.append(1)
print(ll.length()) #1
ll.travel() #1
ll.add(2)
print(ll.length()) #2
ll.travel()#2 1
ll.insert(1,3)
ll.travel() #2 3 1
ll.remove(1)
ll.travel() #2 3 [Course recommendation: Python video tutorial]
The above is the detailed content of [Python Learning] Python syntax implementation of one-way circular linked list. For more information, please follow other related articles on the PHP Chinese website!
Python: Automation, Scripting, and Task ManagementApr 16, 2025 am 12:14 AMPython excels in automation, scripting, and task management. 1) Automation: File backup is realized through standard libraries such as os and shutil. 2) Script writing: Use the psutil library to monitor system resources. 3) Task management: Use the schedule library to schedule tasks. Python's ease of use and rich library support makes it the preferred tool in these areas.
Python and Time: Making the Most of Your Study TimeApr 14, 2025 am 12:02 AMTo maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.
Python: Games, GUIs, and MoreApr 13, 2025 am 12:14 AMPython excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.
Python vs. C : Applications and Use Cases ComparedApr 12, 2025 am 12:01 AMPython is suitable for data science, web development and automation tasks, while C is suitable for system programming, game development and embedded systems. Python is known for its simplicity and powerful ecosystem, while C is known for its high performance and underlying control capabilities.
The 2-Hour Python Plan: A Realistic ApproachApr 11, 2025 am 12:04 AMYou can learn basic programming concepts and skills of Python within 2 hours. 1. Learn variables and data types, 2. Master control flow (conditional statements and loops), 3. Understand the definition and use of functions, 4. Quickly get started with Python programming through simple examples and code snippets.
Python: Exploring Its Primary ApplicationsApr 10, 2025 am 09:41 AMPython is widely used in the fields of web development, data science, machine learning, automation and scripting. 1) In web development, Django and Flask frameworks simplify the development process. 2) In the fields of data science and machine learning, NumPy, Pandas, Scikit-learn and TensorFlow libraries provide strong support. 3) In terms of automation and scripting, Python is suitable for tasks such as automated testing and system management.
How Much Python Can You Learn in 2 Hours?Apr 09, 2025 pm 04:33 PMYou can learn the basics of Python within two hours. 1. Learn variables and data types, 2. Master control structures such as if statements and loops, 3. Understand the definition and use of functions. These will help you start writing simple Python programs.
How to teach computer novice programming basics in project and problem-driven methods within 10 hours?Apr 02, 2025 am 07:18 AMHow to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft





