本文实例为大家分享了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 |
测试结果:
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 |
测试结果:
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]) |
测试结果:
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]) |
测试结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/zhangwei15hh/article/details/78766305