数据结构--线性表和串

个人介绍

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
在这里插入图片描述
🦁作者简介:一名喜欢分享和记录学习的在校大学生
💥个人主页code袁
💥 个人QQ:2647996100
🐯 个人wechat:code8896

专栏导航

code袁系列专栏导航
1.毕业设计与课程设计:本专栏分享一些毕业设计的源码以及项目成果。🥰🥰🥰
2.微信小程序开发:本专栏从基础到入门的一系开发流程,并且分享了自己在开发中遇到的一系列问题。🤹🤹🤹
3.vue开发系列全程线路:本专栏分享自己的vue的学习历程。

非常期待和您一起在这个小小的互联网世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨ 

在这里插入图片描述

在这里插入图片描述

1、 什么是线性表?

线性表是一种常见的数据结构,它是具有相同数据类型的有限序列。线性表中的元素之间存在一种顺序关系,可以通过元素在表中的位置来访问和操作。

线性表的基本操作

线性表的基本操作包括插入、删除、查找、遍历等操作:

  • 插入:在指定位置插入一个新元素。
  • 删除:删除指定位置的元素。
  • 查找:根据元素的值或位置查找元素。
  • 遍历:依次访问线性表中的每个元素。

除了基本操作,线性表还可以进行合并、拆分、反转等高级操作。

线性表的实现

线性表可以使用数组或链表来实现。下面是一个使用数组实现线性表的示例代码:

class ArrayList:
    def __init__(self):
        self.data = []

    def insert(self, index, value):
        self.data.insert(index, value)

    def delete(self, index):
        del self.data[index]

    def find(self, value):
        return value in self.data

    def traverse(self):
        for item in self.data:
            print(item)

线性表的应用

线性表在计算机科学中有着广泛的应用,比如:

  • 数组:数组是线性表的一种实现方式,用于存储固定大小的元素。
  • 链表:链表是线性表的另一种实现方式,用于存储动态大小的元素。
  • 栈和队列:栈和队列可以看作是特殊的线性表,具有特定的操作规则。

线性表的例子

1. 使用线性表实现动态数组

class DynamicArray:
    def __init__(self):
        self.data = []

    def insert(self, value):
        self.data.append(value)

    def delete(self, index):
        del self.data[index]

    def find(self, value):
        return value in self.data

    def traverse(self):
        for item in self.data:
            print(item)

2. 使用线性表实现链表

class ListNode:
    def __init__(self, value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def insert(self, value):
        new_node = ListNode(value)
        if not self.head:
            self.head = new_node
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = new_node

    def delete(self, value):
        current = self.head
        prev = None
        while current:
            if current.value == value:
                if prev:
                    prev.next = current.next
                else:
                    self.head = current.next
                break
            prev = current
            current = current.next

    def traverse(self):
        current = self.head
        while current:
            print(current.value)
            current = current.next

2、什么是串?

串是由零个或多个字符组成的有限序列,也可以理解为字符串。串是计算机科学中最基本的数据类型之一,常用于表示文本信息。

串的基本操作

串的基本操作包括串的赋值、串的连接、串的比较、串的截取等操作:

  • 赋值:将一个串赋值给另一个串。
  • 连接:将两个串连接成一个新串。
  • 比较:比较两个串的大小关系。
  • 截取:从串中截取指定位置和长度的子串。

除了基本操作,串还可以进行查找、替换、匹配等高级操作。

串的实现

串可以使用字符数组或链表来实现。下面是一个使用字符数组实现串的示例代码:

class String:
    def __init__(self, value):
        self.data = list(value)

    def concat(self, other):
        return ''.join(self.data + other.data)

    def compare(self, other):
        if self.data == other.data:
            return 0
        elif self.data < other.data:
            return -1
        else:
            return 1

    def substring(self, start, length):
        return ''.join(self.data[start:start+length])

串的应用

串在计算机科学中有着广泛的应用,比如:

  • 文本处理:在文本编辑器和编译器中,串用于表示和处理文本信息。
  • 模式匹配:在字符串匹配算法中,串用于模式匹配和查找。
  • 数据传输:在网络通信中,串用于表示和传输数据。

串的例子

1. 使用串连接操作

s1 = String("Hello, ")
s2 = String("World!")
result = s1.concat(s2)
print(result)  # Output: Hello, World!

2. 使用串比较操作

s1 = String("abc")
s2 = String("def")
result = s1.compare(s2)
print(result)  # Output: -1

3. 使用串截取操作

s = String("Hello, World!")
result = s.substring(7, 5)
print(result)  # Output: World

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~
在这里插入图片描述

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code袁

你的支持是我莫大的幸运

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值