python数据结构学习之实现线性表的顺序

时间:2022-10-30 08:51:29

本文实例为大家分享了python实现线性表顺序的具体代码,供大家参考,具体内容如下

线性表

1.抽象数据类型表示(adt)

类型名称:线性表
数据对象集:线性表是n(>=0)个元素构成的有序序列(a1,a2,….,an)
操作集:

2.线性表的顺序实现

1.表示方法:
其中100可以自己规定,last代表线性表的长度

?
1
2
3
4
5
# 线性表定义
class lnode(object):
  def __init__(self,last):
    self.data = [none for i in range(100)]
    self.last = last  # 线性表长度12345

2.建立空的顺序表

?
1
2
3
4
5
6
7
8
9
# 1.初始化建立空的线性表
def makeempty(num):
  ptrl = lnode(num)
  return ptrl
 
# 测试建立空的线性表
s = makeempty(10)
print(s.data[0:s.last])
print(s.last)12345678910

测试结果:

python数据结构学习之实现线性表的顺序

3.按值查找

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 2.查找给定值的位置
def find(x, l):
  i =0
  while(i <= l.last and l.data[i] != x):
    i+=1
  if(i> l.last):
    return -1
  else:
    return i
 
# 测试查找函数
num = [0,1,2,3,4,5,6,7,8,9]
l = lnode(10)
for i in range(10):
  l.data[i] = num[i]
print("建立新的线性表")
print(l.data[0:l.last])
print("查找元素2")
print("下标为:")
print(find(2,l))
print("查找元素12")
print("下标为:")
print(find(12,l)) # 找不到返回-1

测试结果:

python数据结构学习之实现线性表的顺序

4.插入操作

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 3.插入(在第i(0<=i<=n)位置上插入一个值为x的新元素)
def insert(x,i,l):
  if i<0 or i>l.last:
    print("位置不合理")
    return
  else:
    for j in range(l.last,i-1,-1):
      l.data[j+1] = l.data[j]
    l.data[i] = x
    l.last+=1
  return
 
 
# 测试插入函数
num = [0,1,2,3,4,5,6,7,8,9]
l = lnode(10)
for i in range(10):
  l.data[i] = num[i]
print("建立新的线性表")
print(l.data[0:l.last])
print("在位序3插入元素6")
insert(6,3,l)
print(l.data[0:l.last])

测试结果:

python数据结构学习之实现线性表的顺序

5.删除操作

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 4.删除第i(0<=i<=n-1)个位置上的元素
def delete(i,l):
  if i<0 or i>=l.last:
    print("不存在该元素")
    return
  else:
    for j in range(i,l.last-1):
      l.data[j] = l.data[j+1]
    l.last -=1
    return
 
# 测试删除函数
num = [0,1,2,3,4,5,6,7,8,9]
l = lnode(10)
for i in range(10):
  l.data[i] = num[i]
print("建立新的线性表")
print(l.data[0:l.last])
print("删除位序3的元素")
delete(3,l)
print(l.data[0:l.last])

测试结果:

python数据结构学习之实现线性表的顺序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/zhangwei15hh/article/details/78766305