线性表的插入操作实现

重点思想:

  • 当在线性表中插入一个元素时,插入位置的所有元素都后移一位
  • 考虑因素:
  • 线性表是否是满线性表
  • 线性表插入位置是否可行
 1 class linearlist_insert_elem():
 2     def __init__(self, data, maxsize):
 3         self.data = data
 4         self.maxsize = maxsize
 5         self.length = len(data)
 6     def list_insert(self, i, e):
 7         if self.length == self.maxsize:
 8             print("线性表%s已满,无法插入元素" % (self.data))
 9             # return -1
10         if i < 1 or i > self.length:
11             print("无法在位置%s插入元素" % i)
12             # return 0
13         else:
14             #在线性表队尾追加一个元素0
15             self.data.append(0)
16             for i in range(self.length, i, -1):
17                 self.data[i] = self.data[i - 1]
18             self.data[i] = e
19             self.length += 1
20             print("在位置%s插入元素%s成功"%(i,e))
21         return self.data
22 if __name__ == ‘__main__‘:
23     ob = linearlist_insert_elem([1, 2, 3, 7, 8, 9, 10, 11, 12, 13, 14], 20)
24     print(ob.data)
25     print(ob.length)
26     ob.list_insert(20, 17)
27     print(ob.data)
28     ob.list_insert(6, 17)
29     print(ob.data)

原文地址:https://www.cnblogs.com/carol-main-blog/p/11517361.html

时间: 2024-10-14 10:24:38

线性表的插入操作实现的相关文章

详谈线性表的有关操作(Java、C两种语言)

    之前在学习线性表一章的时候,有些地方都是比较含糊的带过,只是把一些比较难理解的地方花了好长时间才明白....然后写出代码,存在博客上面.从今天开始,将重新把数据结构这本书走一遍,用C和Java两种语言,尽量把每个部分都可以用代码实现一遍,使印象更加深刻,也算是重新学习一下C语言啦~~.而且现在新学期开始学Oracle啦,也会把一些学习过程中的代码以及重点难点记录下来,希望大家会关注哦~~    线性表的概念都在之前的文章有提到,今天来说一下有关线性表的具体操作(数组实现),分为以下几个部

线性表算法-插入

线性表算法-插入

线性表的相关操作

1.对线性表的操作 #include <stdio.h>#include "2-1.h" List* List_Create(){    return NULL;} void List_Destroy(List* list){ } void List_Clear(List* list){ } int List_Length(List* list){    return 0;} int List_Insert(List* list, ListNode* node, int p

第六课 线性表的相关操作

线性表的讨论 线性表的操作 线性表的一些常用操作 创建线性表 销毁线性表 清空线性表 将元素插入线性表 将元素从线性表中删除 获取线性表中某个位置的元素 获取线性表的长度 先把方法声明出来,下一节课开始实现: #ifndef _EG_2_1_H_ #define _EG_2_1_H_ typedef void List; typedef void ListNode; /* 该方法用于创建并且返回一个空的线性表 */ List* List_Create(); /* 该方法用于销毁一个线性表list

线性表的插入和删除

hello,大家好,又见面了,这次我们来讲讲线性表 线性表其实跟数组差不多,但多了一个指针的传递 我们先来看看线性表的定义: typedef struct { int *elem; int length; //这里我们定义了线性表的长度,也就是元素的个数了// int listsize;   //这个就是我们线性表的存储容量了// }Sqlist; 这样就定义完了,是不是很OK,接下来我们看看怎么创建线性表 1.创建函数 int Initlist_Sq(Sqlist *L){ L->elem=(

线性表的常见操作实现

#include<stdio.h> #include<stdlib.h> #define OK 1 #define LIST_INIT_SIZE 10  /*初始化线性表的分配量*/ #define LIST_ADD 5   /*增加的分配量 */ #define OVERFLOW 0 #define ERROP -1 typedef int Status; typedef int ElemType; typedef struct{ ElemType *elem; Status l

《线性表的基础操作(实现了可以选择在创建初始链表时,是用头插法,还是用尾插法)》

#include<stdio.h>#include<stdlib.h>#include<conio.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define NULL 0typedef int Status;typedef int ElemType; //------线性表的单链表存储结构-------- typede

在已知线性表中插入/删除元素的代码

#include "sqlist_h.h" void main(){ SqList L; int n; int e; InitList_Sq(L); cout<<"请输入初始建立线性表的长度n(<=100):"; //printf("请输入初始建立线性表的长度n(<=100):"); cin>>n; //scanf(&n); for(int i=1;i<=n;i++) { cin>>L

线性表以及线性表的各种操作

1.线性表的定义 若将线性表记为(a1,...,ai-1,ai,ai+1,...,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素.线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表.注:线性表只有一个前驱和后驱,而且线性表是最常用且最简单的一种数据结构. 2.线性表的顺序存储结构 线性表的顺序存储结构,指的是一段地址连续的存储单元依次存储线性表的数据元素. 线性表的顺序存储结构如图所示: 2.1地址计算方法