返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎么使​用Python仿照C语言来实现线性表的顺序存储结构
  • 190
分享到

怎么使​用Python仿照C语言来实现线性表的顺序存储结构

2023-06-16 16:06:33 190人浏览 八月长安
摘要

今天小编给大家分享一下怎么使用python仿照C语言来实现线性表的顺序存储结构的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

今天小编给大家分享一下怎么使用python仿照C语言来实现线性表的顺序存储结构的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

代码:

# !/usr/bin/env Python# -*- coding: utf-8 -*- __author__ = 'MrHero'  class node(object):  """  线性表的存储结构  和 C 语言中的链式存储结构类似  """  def __init__(self, data=None):    self.data = data    self.next = None  class LKList(object):  """  线性表的具体操作  """   def __init__(self):    """    相当于初始化线性表, 即创建头结点    头节点为空节点,占据位置号为0    创建好的表即为: 头节点[0]->节点[1]->节点[2]->节点[3]->节点[4]    :return:    """    self.L = Node(None)    self.L.next = None    self.length = 0   def is_empty(self):    """    判断线新表的长度    :return:    """    return self.length == 0   def get_length(self):    """    获取线新表的长度    :return:    """    return self.length   def insert(self, i, elem):    """    在指定位i处置插入元素elem    :param i: 指定的位置    :param elem: 插入的元素elem    :return:    """    j = 0    p = self.L    while j < i-1 and p is not None: # 查找第 i-1 个节点      j += 1      p = p.next    if p is None:  # 未找到逻辑位序为 i-1 的节点      raise IndexError("Index is out of range!")    else:  # 找到逻辑位序为 i-1 的节点      tmp = Node(elem)      tmp.next = p.next      p.next = tmp      self.length += 1   def delete(self, i):    """    删除指定节点的元素    :param i: 指定节点    :return: 删除的指定节点元素值    """    if self.is_empty():      raise IndexError("The list is empty!")    elif 0 < i <= self.length:      j = 1      p = self.L      while j < i and p:        p = p.next        j += 1      delelte_node = p.next      p.next = delelte_node.next      self.length -= 1      return delelte_node.data    else:      raise IndexError("Index is out of range!")   def get_elem(self, i):    """    获取某个节点的值    :param i:    :return:返回某个节点的值    """    if self.is_empty():      raise IndexError("The list is empty")    elif 0 < i <= self.length:      j = 0      p = self.L      while j < i and p:        p = p.next        j += 1      print p.data    else:      raise IndexError("Index is out of range!")   def locate_elem(self, elem):    """    查找某值的位置    :param elem:    :return: 返回第一个值等于elem的位置    """    j = 0    p = self.L    while p is not None and p.data != elem:      p = p.next      j += 1    if p is Node:      return -1    else:      return j   def create_dict_list_H(self, list):    """    头插法建表    :param list:    :return:    """    p = self.L    for i in range(len(list)):      tmp = Node(list[i])      tmp.next = p.next      p.next = tmp      self.length += 1   def create_dict_list_E(self, list):    """    尾插法建表    :param list:    :return:    """    p = self.L    r = p    for i in range(len(list)):      tmp = Node(list[i])      r.next = tmp      r = tmp      self.length += 1    r.next = None   def show_lklist(self):    if self.is_empty():      raise IndexError("It's a empty list!")    else:      j = 1      p = self.L      while j <= self.length and p:        p = p.next        if p is not None:          print p.data        j += 1  if __name__ == '__main__':  lk = LKList()  #  # lk.create_dict_list_E([1, 2, 3, 4])  # print "-----"  # lk.get_elem(1)  # lk.get_elem(2)  # lk.get_elem(3)  # lk.get_elem(4)  # print "-------"  # lk.show_lklist()  # lk.insert(3, 5)  # print "-------"  # lk.show_lklist()  # lo = lk.locate_elem(5)  # print "location is %d" % lo  # lk.delete(4)  # print "-------"  # lk.show_lklist()

以上就是“怎么使用Python仿照C语言来实现线性表的顺序存储结构”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网其他教程频道。

--结束END--

本文标题: 怎么使​用Python仿照C语言来实现线性表的顺序存储结构

本文链接: https://lsjlt.com/news/284296.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使​用Python仿照C语言来实现线性表的顺序存储结构
    今天小编给大家分享一下怎么使用Python仿照C语言来实现线性表的顺序存储结构的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-16
  • C语言数据结构之线性表的链式存储结构
    1.什么是线性表的链式存储结构 —链表 存储结点:包括元素本身的信息,还有元素之间的关系逻辑的信息 这个结点有:数据域和指针域 一个指针域:指向后继结点, 单链表 二个指针域: 指向...
    99+
    2024-04-02
  • C语言的线性表之顺序表怎么用
    这篇文章给大家分享的是有关C语言的线性表之顺序表怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。线性表 &mdash;&mdash; 顺序表 (C语言) 概念线性表的顺序表示指的是用...
    99+
    2023-06-29
  • C语言数据结构中的线性表怎么使用
    这篇文章主要介绍“C语言数据结构中的线性表怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言数据结构中的线性表怎么使用”文章能帮助大家解决问题。一、分文件编写1、分文件编写概念在Visua...
    99+
    2023-06-30
  • C语言的顺序表怎么实现
    本文小编为大家详细介绍“C语言的顺序表怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言的顺序表怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.线性表线性表(linear list)是n个具...
    99+
    2023-06-30
  • 如何理解C语言数据结构中线性表的链式存储结构
    如何理解C语言数据结构中线性表的链式存储结构,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.什么是线性表的链式存储结构 —链表存储结点:包括元素本身的信息,还有元素之间的关系...
    99+
    2023-06-21
  • C语言实现串的顺序存储表示与基本操作
    本文实例为大家分享了C语言实现串的顺序存储表示与基本操作代码,供大家参考,具体内容如下 1、串的三种存储表示 串,即:字符串。要注意的是,C语言中是没有字符串数据类型的,而将其作为一...
    99+
    2024-04-02
  • C语言顺序表的基本结构与实现思路详解
    目录一、顺序表的概念与结构1、线性表的解释2、顺序表概念解释二、顺序表的思路及代码实现详解1.静态顺序表的实现2.动态顺序表思路及代码实现2.1 动态顺序表的整体思路2.2 定义结构...
    99+
    2023-02-13
    C语言顺序表 C语言顺序表的创建
  • 怎么用C语言数组实现顺序表
    这篇文章主要讲解了“怎么用C语言数组实现顺序表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言数组实现顺序表”吧!线性表和顺序表线性表线性表(linear list)是n个具有相同...
    99+
    2023-06-25
  • C语言怎么实现顺序表的操作
    这篇文章主要介绍了C语言怎么实现顺序表的操作的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现顺序表的操作文章都会有所收获,下面我们一起来看看吧。线性表线性表(linear list)是n个具有相同特...
    99+
    2023-06-30
  • C语言怎么实现对结构体数组按照某项规则进行排序
    这篇文章主要讲解了“C语言怎么实现对结构体数组按照某项规则进行排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么实现对结构体数组按照某项规则进行排序”吧!一、qsort()函数vo...
    99+
    2023-07-05
  • C语言怎么实现线性表中的带头双向循环链表
    这篇文章主要介绍了C语言怎么实现线性表中的带头双向循环链表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现线性表中的带头双向循环链表文章都会有所收获,下面我们一起来看看吧。一、本章重点带头双向循环链...
    99+
    2023-06-29
  • 怎么用C语言结构体链表和指针实现学生管理系统
    今天小编给大家分享一下怎么用C语言结构体链表和指针实现学生管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、需求分析...
    99+
    2023-06-30
  • 怎么用C语言代码实现复数的加减及输出结构体
    这篇“怎么用C语言代码实现复数的加减及输出结构体”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用C语言代码实现复数的加减...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作