栈的基本操作

简介: 栈的基本操作

问题

在数据结构的学习中,栈是一个重要的部分,我们知道栈(stack)是一种线性表结构,只允许在表的一端进行插入和删除操作的线性表。简单来说,一种后进先出的线性表,简称为LIFO结构。那么它的基本操作有哪些,如何应用的知识呢?


方法

(1)首先栈是一个线性表。中允许插入和删除的一端成为顶(top);另一段则成为底(bottom)。当表中没有任何元素,称为空

(2)基本操作:定义节点类;赋值;查找第i个结点;前插法;尾插法;第i个结点前插入;删除第i个结点;遍历。

代码清单 1

#定义结点类
class LinkNode:
   #self.data 类的成员变量
#(data,...) 形参
def __init__(self,data=-1,next=None):
      self.data = data
      self.next = next
#第一步
n5 = LinkNode()
n5.data = 5
n5.next = None
n4 = LinkNode()
n4.data = 4
n4.next = n5
n3 = LinkNode()
n3.data = 3
n3.next = n4
n2 = LinkNode()
n2.data = 2
n2.next = n3
n1 = LinkNode()
n1.data = 1
n1.next = n2
head = LinkNode()
head.data = -1
head.next = n1
#查找第i个结点
i = 3
p = head
for k  in range(i):
   p = p.next
print(p.data)
#前插法
for i in range(1,101):
   q = LinkNode()
   q.data = i
   q.next = None
   q.next = head.next
head.next = q
#尾插法
for i in range(1,101):
   q = LinkNode()
   q.data = i
   q.next = None
   p.next = q
   p = p.next
#第十个结点前插入999
i = 9
p = head
for k in range(i):
   p  = p.next
q = LinkNode()
q.data = 999
q.next = p.next
p.next = q
#删除第10个结点
i = 9
p = head
for k in range(i):
   p = p.next
p.next = p.next.next
#遍历
p = head
while p.next!=None:
   p=p.next
   print(p.data)


结语

针对栈的基本知识,以及如何运用栈的基本操作等问题,提出上述几个方面的知识和操作,通过亲自实验,证明该方法是有效的,本文使用这种方法解决了如何查找第i个结点,删除结点,遍历等问题,但方法并不简便,还有考虑不周的地方,未来可以继续研究更加简洁方便的代码进行处理。

目录
相关文章
|
15小时前
|
机器学习/深度学习 算法 测试技术
【单调栈】3113. 边界元素是最大值的子数组数目
【单调栈】3113. 边界元素是最大值的子数组数目
|
15小时前
|
存储 NoSQL C语言
数据结构——顺序栈与链式栈的实现-2
数据结构——顺序栈与链式栈的实现
数据结构——顺序栈与链式栈的实现-2
|
15小时前
|
存储 C语言
数据结构——顺序栈与链式栈的实现-1
数据结构——顺序栈与链式栈的实现
数据结构——顺序栈与链式栈的实现-1
|
15小时前
栈的基本应用
栈的基本应用
12 3
|
15小时前
栈与队列理解
栈与队列理解
12 1
|
15小时前
|
存储 算法
数据结构与算法 栈与队列
数据结构与算法 栈与队列
12 0
数据结构与算法 栈与队列
|
15小时前
|
C++
数据结构(共享栈
数据结构(共享栈
8 0
|
15小时前
|
C++
数据结构(顺序栈
数据结构(顺序栈
13 2
|
15小时前
|
容器
【栈与队列】栈与队列的相互转换OJ题
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
10 0
|
15小时前
|
存储
【栈】基于顺序表的栈功能实现
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
13 0