首页 > 编程语言 >python中的链栈

python中的链栈

时间:2024-11-25 21:00:33浏览次数:8  
标签:head python self list 链栈 data def

链表

思维导图

思维导图

链栈

概念

栈的概念:由一系列节点组成,每个节点包含两个部分:数据域用于存储数据,以及指针域指向下一个节点。链表的特点是没有固定的大小,可以动态地添加或删除元素,
链栈:链栈即链式存储的栈**
栈的特点: 先进后出(filo),后进先出(lifo)

栈的操作

创建

首先创建链的节点类,节点拥有两个属性,值和后继

class Note:
    def __init__(self,data):
        self.data=data
        self.next=None
        

然后创建链表的类,其中一个属性,头节点

class LinkList:
    def __init__(self,note=None):
        self.head = note

判断栈空

函数功能:判断栈是否为空
函数返回值:bool值
函数名:is_empyt
参数列表:链栈

def is_empty(self):
    return self.head is None

链栈的入栈

函数功能:将值输入栈
函数返回值:无
函数名:insert_head
参数列表:链栈,插入的数据

def insert_head(self,data):
     new_node = Note(data)
     new_node.next = self.head
     self.head = new_node

链栈的出栈

函数功能:将栈最后一个输入的值删除并输出
函数返回值:栈最后一个输入的值
函数名:del_head
参数列表:链栈

def del_head(self):
	result = self.head.data
	if self.head:
    	self.head=self.head.next
    	return result
    else:
       	raise BaseException("empty list")

遍历栈

函数功能:遍历栈并将其输出
函数返回值:无
函数名:print_lis
参数列表:链栈

def print_lis(self):
    p=self.head
    while p:
        print(p.data,end="  ")
        p=p.next

输出栈的大小

函数功能:输出栈的长度
函数返回值:栈的长度
函数名:length
参数列表:链栈

def length(self):
    count = 0
    p=self.head
    while p:
        count += 1
        p = p.next
    return count

全部代码

class Note:
    def __init__(self,data):
        self.data=data
        self.next=None
        
        
class LinkList:
    def __init__(self,note=None):
        self.head = note

    def insert_head(self,data):
        new_node = Note(data)
        new_node.next = self.head
        self.head = new_node
         
    def is_empty(self):
        return self.head is None
    
    def del_head(self):
        result = self.head.data
        if self.head:
            self.head=self.head.next
            return result
        else:
            raise BaseException("empty list")
        
    def length(self):
        count = 0
        p=self.head
        while p:
            count += 1
            p = p.next
        return count
    
    def print_lis(self):
        p=self.head
        while p:
            print(p.data,end="  ")
            p=p.next
        print()
lin_list=LinkList()
lin_list.insert_head(1)
lin_list.insert_head(2)
lin_list.insert_head(3)
lin_list.insert_head(4)
lin_list.insert_head(5)
lin_list.print_lis()
print(lin_list.length())
print(lin_list.del_head())
lin_list.print_lis()

标签:head,python,self,list,链栈,data,def
From: https://blog.csdn.net/qq_62780060/article/details/144036103

相关文章

  • Python -- PyExecJS模块
    PyExecJS介绍PyExecJS是一个可以使用Python来模拟运行JavaScript的库。使用该模块可以通过python程序调用执行js代码,获取js代码返回的结果!注意事项:电脑必须安装好了nodejs开发环境上述模块才可以生效!环境安装:pipinstallPyExecJS使用步骤:导包:importexecjs......
  • PythonDay3Advance
    PythonDay3Advance运算符位运算符进制:将整数分了几种进制表示法二进制:由0,1构成,逢2进1,以0b开头八进制:由0,1,2,3,4,5,6,7构成,逢8进1,以0开头十进制:由0,1,2,3,4,5,6,7,8,9构成,逢10进1,默认就是10进制十六进制:由0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,逢16进1,以0x开头如何从其他进制转10进制十进制转十进......
  • Python数据结构day2
    一、链表1.1目的解决顺序表存储数据有上限,并且插入和删除操作效率低的问题1.2概念链表:链式存储的线性表,使用随机物理内存存储逻辑上连续的数据链表的组成:由一个个结点组成结点:由数据域和链接域组成,是链表的基本单位数据域:存储数据元素的区域链接域:记录下一个结点所在位......
  • Python数据结构day3
    一、双向链表1.1作用双向链表也叫双面链表。对于单向链表而言。只能通过头节点或者第一个节点出发,单向的访问后继节点,每个节点只能记录其后继节点的信息(位置),不能向前遍历。所以引入双向链表,双向链表可以保持单向链表特点的基础上,让每个节点,既能向后访问后继节点,也可以向前......
  • python实现LBP方法提取图像纹理特征 (附完整源码)
    python实现LBP方法提取图像纹理特征局部二值模式(LBP)是一种用于纹理特征提取的有效方法。下面是一个使用Python实现LBP方法提取图像纹理特征的完整示例代码。我们将使用OpenCV库来处理图像,并使用NumPy来进行数组操作。首先,确保你已经安装了OpenCV库。如果没有安装,可......
  • python实现加密认证通信系统 (附完整源码)
    python实现加密认证通信系统安装依赖完整源码代码解释:运行代码注意事项实现一个简单的加密认证通信系统可以通过使用对称加密(如AES)和消息认证码(如HMAC)来完成。以下是一个使用Python的cryptography库实现的示例,展示了如何建立一个简单的加密认证通信系统......
  • python 生成图表
    在Python中生成图表,通常会使用matplotlib库,它是Python中最常用的绘图库之一。以下是如何使用matplotlib来生成一些基本图表的示例:安装Matplotlib如果您还没有安装matplotlib,可以使用以下命令安装:pipinstallmatplotlib基本图表1.折线图(LinePlot)importmatplotlib.pyplo......
  • python计算非线性相关的一些笔记
    在Scipy中,相关系数的范围是介于-1到1之间。其中,1表示完全正相关,-1表示完全负相关,0表示无相关关系。因此,相关性最高是1,最低是-1。在计算非线性相关时,样本量的大小对于结果的准确性有重要影响。根据搜索结果,虽然没有一个固定的“最佳”样本量,但是有一些指导性的建议:样本量与p......
  • python如何读取excel的图表
    在Python中读取Excel文件中的图表,你可以使用openpyxl库来处理.xlsx文件。openpyxl是一个用来读写Excel2010xlsx/xlsm/xltx/xltm文件的Python库。以下是使用openpyxl读取Excel文件中图表的基本步骤:安装openpyxl:如果你还没有安装openpyxl,可以通过pip安装:pipinstallopenpyx......
  • python怎么调用js中的函数
    Python调用JS文件中的函数方法如下:1、安装PyExecJS第三方库2、导入库:importexecjs3、调用JS文件中的方法Passwd = execjs.compile(open(r"web.js").read().decode("utf-8")).call('loginHandle','steam')语句解析,open后跟所执行的js文件位置,call后第一个单引号引......