c语言描述简单的线性表,获取元素,删除元素,

 1 //定义线性表
 2 #define MAXSIZE 20
 3 typedef int ElemType;
 4 typedef  struct
 5 {
 6         ElemType data[MAXSIZE];  //这是数组的长度,从0开始,也就是最大长度
 7         int length;              //这是线性表的长度,表示线性表已经存储了多少个元素
 8
 9 }SqList;
10 /*
11 **************************
12 **************************
13 */
14
15
16
17 //返回线性表L的元素
18 typedef int Status;
19 Status GetElem1 (SqList L,int i,ElemType *e)
20 {
21      if (L.length==0 || i<i || i>L.length)
22                      return -1;
23
24          *e = L.data[i-1];
25          return 0;
26 }
27
28
29
30
31
32 /*
33 **************************
34 **************************
35 */
36
37
38 //元素插入线性表
39 Status ListInsert (SqList *L,int i,ElemType e)
40 {
41      int k;
42      if (L->length == MAXSIZE)    //表示线性表的最大长度已经等于数组的长度,线性表已经满
43           return -1;
44
45      if(i < 1 || i > L->length+1)    //表示要插入的位置i 不在线性表的范围
46          return -1;
47
48      if (i <= L->length)      //若要插入的位置不在线性表的尾端
49         for (k = L->length - 1;k >= i-1 ;k--)     //就是插入位置后面的元素一个个往后面挪出一个位置,先是线性表最后一个元素挪
50                L->data[k+1] = L->data[k];
51
52      L->data[i-1] = e; // 插入的i是相对于线性表来说的下标从1开始,data是数组,下标从0开始,所以辅助到i-1上
53      L->length++;    //表示线性表的长度加上1
54      return 0;
55 }
56
57
58 /*
59 **************************
60 **************************
61 */
62
63 //元素删除
64 Status ListDelete(SqList *L,int i,ElemType *e)
65 {
66       int k;
67       if (L->length ==0)    //判断线性表是否为空
68         return -1;
69       if (i>L->length || i<1)   //判断要删除的元素是否在线性表中
70         return -1;
71       *e = L->data [i-1];    //先把数组的数组拿出来赋值给e
72
73       if (i< L->length)
74             for (k=i;k<L->length;k++)   //直接把药删除的元素后面的元素直接往前移动
75                L->data[k-1]=L->data[k];
76
77          L ->length --;      //最后一步是把线性表的长度减去1 数组的长度不用减,英文已经用maxsize定义了。
78
79  }
80
81
82  int main()
83  {
84      return 0;
85  }
86
87        

简单的线性表增删,本人是菜鸟,有什么问题请评论,我真的希望大家能给点指点,谁也是从菜鸟开始的,

做技术的没有什么好嘲笑的,技术的东西是永远学不完的,日新月异。

技术靠一点一点积累的,大牛也是這样,

希望我也能加油。

时间: 2024-08-07 21:19:38

c语言描述简单的线性表,获取元素,删除元素,的相关文章

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

#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:实现一个简单的线性表功能

数据结构: 一个简单的线性表的实现 学习了数据结构有一段时间了,那是半年前老师课堂上讲的,最后由于一些原因,没能听到最后,前几天在写一些算法的时候,发现自己的数据结构还是太渣了,因此便又拿起了那本很有价值的数据结构的书,重新来啃这本厚厚的书,数据结构在我们编程中是非常的重要的,希望这次的学习能有一个好的开头,并且能在这个过程中有所得吧! 下面是我写的一个简单的线性表的实现: #include"stdafx.h" #include<iostream> using namesp

基于c语言数据结构+严蔚敏——线性表章节源码,利用Codeblocks编译通过

白天没屌事,那我们就来玩玩线性表的实现吧,快要失业了,没饭吃了咋整哦 题目描述假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B.这就要求对线性表做如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去.只要从线性表LB中依次取得每个元素,并依值在线性表LA中进行查访,若不存在,则插入之. #ifndef FUNC_H_INCLUDED #define FUNC_H_INCLUDE

数据结构与算法-线性表顺序存储结构删除操作的实现

这一章节我们来看一下线性表顺序存储结构删除操作的简单实现 package com.ray.testobject; public class Test { private Object[] list; public Object[] getList() { return list; } /** * 初始化list * * @param num * 元素个数 */ private void iniList(int num) { list = new Object[num]; for (int i =

线性表的顺序存储结构元素的获取,插入及删除

对于线性表,我们可以对其元素进行简单的获取,插入以及删除操作. 先来讲讲元素的获取操作,完整来讲,就是对,将线性表L第i个位置的元素返回,若成功,则返回1,且将第i个位置的元素的值赋给*e:若失败,则返回0.代码如下: int GetElem ( SqList L, int i, int *e ){          if ( i < 1 || i > L->length || L->length == 0 )         return 0;              *e =

C语言 严蔚敏数据结构 线性表之链表实现

博主最近在考成都大学皇家计算机科学与技术专业,复习专业课数据结构,正好学习到线性结构中的线性表用链表这种存储结构来实现. 首先,数据结构包括1.数据的操作2.逻辑结构3.存储结构(数据结构三要素. 直接上代码,现阶段代码实现功能有:链表初始化.遍历.增.删.返回链表长度,后续功能陆续发布.其中肯定有很多问题,希望各位码哥留言. Linklist* InitList(int i)//i为链表大小 { Linklist *head; head = (Linklist*)malloc(sizeof(L

线性表插入、删除实现

1 //////////////////////////////////////////// 2 // sequencelist.cpp 3 // 4 // author:Leetao 5 //////////////////////////////////////////// 6 // 简介: 7 // 线性表的实现 8 //////////////////////////////////////////// 9 /** 10 * 线性表初始化,插入,删除功能的实现 11 * 12 * @au

顺序表添加与删除元素以及 php实现顺序表实例

对顺序表的操作,添加与删除元素. 增加元素 如下图所示  对顺序列表 Li [1328,693,2529,254]  添加一个元素 111 ,有三种方式: a)尾部端插入元素,时间复杂度O(1);    保证了原始顺序列表的顺序. b)非保序的加入元素(不常见),时间复杂度O(1);   打乱了原始顺序列表的顺序. c)保需的元素插入,时间复杂度O(n);    保证了原始顺序列表的顺序. 删除元素 如下图所示  对顺序列表 Li [1328,693,2529,254]  删除元素 ,有三种方式

go语言从零学起(三)--list循环删除元素(转载)

本篇系转载 在使用go的container/list的package时,你可能会无意间踩一个小坑,那就是list的循环删除元素. list删除元素,直观写下来的代码如下: package main import ( "container/list" "fmt" ) func main() { //初始化一个list l := list.New() l.PushBack(1) l.PushBack(2) l.PushBack(3) l.PushBack(4) fmt.