python实现顺序表的插入元素,删除元素和顺序表反转

news/2024/7/19 12:08:58 标签: python, 数据结构, 列表, 算法
python">#顺序表的插入
def insert_list(L,i,data): #在顺序表L的第i个位置处插入新元素data
    length=len(L) 
    if i <1 or i>length:
        return False
    else:
        for j in range(i-1,length)[::-1]: #逆序输出从length-1到i-1的元素
            L[j+1:j+2]=[L[j]] #被插入位置索引之后的元素后移
        L[i-1]=data
    return L
if __name__ == '__main__':
    L=[1,2,3,4,5]
    insert_list(L,2,0)
    print("插入元素:")
    print(L) #运行结果为:[1,0,2,3,4]

#顺序表的删除   
def delete_list(L,i): #删除顺序表L的第i个元素
    length=len(L)
    if i<1 or i>length:
        return False
    else:
        del L[i-1]
    return L
if __name__ == '__main__':
    L=[1,2,3,4,5]
    delete_list(L,2)
    print("删除元素:")
    print(L) #运行结果为:[1,3,4,5]


#顺序表的反转
def reverse_list(L):
    i,j=0,len(L)-1
    while i<j:
        L[i],L[j]=L[j],L[i]
        i,j=i+1,j-1
    return L
if __name__ == '__main__':
    L=[1,2,3,4,5]
    reverse_list(L)
    print("反转:")
    print(L) #运行结果为:[5,4,3,2,1]

http://www.niftyadmin.cn/n/1711990.html

相关文章

python计算迷宫最短路径长度(即二维数组最左上角到最右下角的最小路径长度)

迷宫最短路径(二维数组左上角到右下角最小距离,最短路径长度17,路线1->8->2->1->5) 1 4 3 8 7 5 2 1 5 def getMinPath(array):if arrayNone or len(array)<1:return 0rowlen(array) #行数collen(array[0]) #列数data[([None]*col) for i in range(row)] #[[Non…

python求一个字符串或数组的全部子集(如123全部子集为[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3])

#求一个字符串或数组的全部子集 def getAllSub(strs):nlen(strs)for i in range(2**n): #循环输出子集result[]for j in range(n): #判断二进制下标为j的位置数是否为1if(i>>j)%2:result.append(strs[j])print(result) if __name__ __main__:strs[1,2,3]#strsabcgetAllS…

python求字符串中出现的第一个最长重复子串(如banana中最长重复子串为ana)

#字符串中出现的第一个最长重复子串 class commonsubstring():def maxlen(self,s1,s2): #最长公共子串的长度for i in range(min(len(s1),len(s2))):if s1[i]s2[i]:i1else:break return idef getMaxCom(self,strs):nlen(strs)suf[None]*n #用于存放后缀字符串数组maxSubLen0 #…

稀疏数组的定义及作用与代码实现

大家好&#xff0c;这是我学习完尚硅谷韩顺平老师的《数据结构与算法》后&#xff0c;进行复习回顾&#xff0c;自己对于稀疏数组的理解。 什么是稀疏数组呢&#xff1f; 首先我引出一个例子&#xff0c;就是五子棋&#xff0c;我们对于五子棋有存盘与复盘&#xff0c;如果要…

python统计字符串中连续的重复字符个数(如abbbc里重复元素个数为3)

#统计字符串中连续的重复字符个数 def maxDup(strs):nlen(strs)maxlen1length1maxstr[]for i in range(n-1): if strs[i]strs[i1]:length1maxstr.append(strs[i1])if length>maxlen:maxlenlengthelse:length1print(maxlen) if __name__ __main__:strsabbbcmaxDup(strs) #结…

环形队列的实现

首先我们先来了解一下队列是什么&#xff1f; 队列&#xff1a;数据先入先出&#xff0c;后进后出&#xff08;与栈刚好相反&#xff09;&#xff0c;主要通过数组实现。需要通过两个指针来创建对应的队列&#xff1b;一个指针为前缀pre&#xff0c;一个指针为后缀rear。pre指…

单向链表的定义与CRUD

链表是由结点的方式来储存的&#xff0c;是链式存储。其的组成需要有data(数据域)&#xff0c;指向下一个结点的next&#xff0c;指向前一个结点的pre(双向链表)。链表可以分为有头结点和无头结点的链表。注意&#xff1a;链表是一种逻辑上的顺序存储结构&#xff0c;而物理上不…

python按给定字母序列对字符数组排序(如[‘bed‘,‘good‘,‘dear‘,‘eye‘,‘ok‘,‘car‘]按‘dgecfboa‘排列,结果为dear,good,eye,car,bed)

#按照给定字母序列对字符数组排序 def sort(sequence,strs):keylist(sequence) #序列转列表[d,g,e,c,f,b,o,a]value[i for i in range(len(sequence))] #value[0,1,2,3,4,5,6,7]dicdict(zip(key,value)) #dic{d:0,g:1,e:2,c:3,f:4,b:5,o:6,a:7}data,number[],[]for i in range(…