#include <stdio.h>
#include <tchar.h>
#include <stdlib.h> #define LIST_INIT_SIZE 100
#define LISTINCREMENT 10 // TODO: 在此处引用程序需要的其他头文件
//
typedef struct{
int *elem;
int length;//当前长度
int listsize;//当前分配的存储容量
}SqList; //新建线性表
bool Init_List(SqList* L){
L->elem = (int*)malloc(LIST_INIT_SIZE*sizeof(int));
if (!L->elem) return false;
L->length = ;
L->listsize = LIST_INIT_SIZE;
return true;
}
//销毁线性表
bool Destroy_List(SqList* L){
if (L){
free(L);
L = NULL;
return true;
}
else
return false;
}
//表末新增一个元素
bool Append_List(SqList* L,int value){
if (L->length >= L->listsize){
L->elem = (int*)realloc(L->elem, (L->listsize + LISTINCREMENT)*sizeof(int));
L->listsize += LISTINCREMENT;
}
L->length++;
L->elem[L->length] = value;
return true;
}
//打印线性表
void Print_List(SqList L){
for (int i = ; i<=L.length;i++){
printf("%d", L.elem[i]);
}
}
//指定位置locate插入值valu
bool Insert_List(SqList* L, int locate, int value){
if (L->length >= L->listsize){
L->elem = (int*)realloc(L->elem, (L->listsize + LISTINCREMENT)*sizeof(int));
L->listsize += LISTINCREMENT;
}
for (int i = L->length; i >= locate; i--){
L->elem[i + ] = L->elem[i];
}
L->elem[locate] = value;
L->length++;
return true;
}
//删除指定位置locate元素
bool Delete_List(SqList* L, int locate){
for (int i = locate; i<L->length; i++){
L->elem[i] = L->elem[i + ];
}
L->elem[L->length] = NULL;
L->length--;
return true;
}
//清空线性表
bool Clear_List(SqList* L){
while (L->length){
L->elem[L->length] = NULL;
L->length--;
}
return true;
}

c语言实现基本的数据结构(一) 线性表的更多相关文章

  1. C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作

    1.数据结构-顺序线性表的实现-C语言 #define MAXSIZE 100 //结构体定义 typedef struct { int *elem; //基地址 int length; //结构体当 ...

  2. 用C#学习数据结构之线性表

    什么是线性表 线性表是最简单.最基本.最常用的数据结构.线性表是线性结构的抽象(Abstract),线性结构的特点是结构中的数据元素之间存在一对一的线性关系.这种一对一的关系指的是数据元素之间的位置关 ...

  3. 数据结构之线性表(python版)

    数据结构之线性表(python版) 单链表 1.1  定义表节点 # 定义表节点 class LNode(): def __init__(self,elem,next = None): self.el ...

  4. 数据结构(C语言版)-第2章 线性表

    #define MAXSIZE 100 //最大长度 typedef struct { ElemType *elem; //指向数据元素的基地址 int length; //线性表的当前长度 }SqL ...

  5. c语言数据结构之线性表的顺序存储结构

    线性表,即线性存储结构,将具有“一对一”关系的数据“线性”地存储到物理空间中,这种存储结构就称为线性存储结构,简称线性表. 注意:使用线性表存储的数据,要求数据类型必须一致,线性表存储的数据,要么全不 ...

  6. javascript实现数据结构:线性表--线性链表(链式存储结构)

    上一节中, 线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素,它的存储位置可用一个简单,直观的公式来表示.然后,另一方面来看,这个特点也造成这种存储 ...

  7. 算法与数据结构(一) 线性表的顺序存储与链式存储(Swift版)

    温故而知新,在接下来的几篇博客中,将会系统的对数据结构的相关内容进行回顾并总结.数据结构乃编程的基础呢,还是要不时拿出来翻一翻回顾一下.当然数据结构相关博客中我们以Swift语言来实现.因为Swift ...

  8. [C++]数据结构:线性表之顺序表

    1 顺序表 ADT + Status InitList(SeqList &L) 初始化顺序表 + void printList(SeqList L) 遍历顺序表 + int ListLengt ...

  9. javascript实现数据结构:线性表--简单示例及线性表的顺序表示和实现

    线性表(linear list)是最常用且最简单的一种数据结构.一个线性表是n个数据元素的有限序列.在稍复杂的线性表中,一个数据元素可以由若干个数据项(item)组成. 其中: 数据元素的个数n定义为 ...

  10. Java数据结构之线性表(2)

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

随机推荐

  1. Java集合类的概述

    前述 复习一下Java中的集合类,是面试笔试中常考察的一个点,特地做的整理. 什么是集合类? 集合类,也叫容器类.Java集合类可以用来存储数量庞大的对象. 我们和数组进行对比: 数组:存储基本数据类 ...

  2. java学习笔记(基础篇)—面向对象编程之封装、继承、多态

    一. OOP中的基本概念 Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许设计者将面向对象设计实现为一 ...

  3. France beat Croatia 4-2 in World Cup final

                     France won the World Cup for the second time by beating Croatia 4-2 in a tremendous ...

  4. Excel催化剂开源第15波-VSTO开发之DataTable数据导出至单元格区域

    上篇提到如何从Excel界面上拿到用户的数据,另外反方向的怎样输出给用户数据,也是关键之处. VSTO最大的优势是,这双向的过程中,全程有用户的交互操作. 而一般IT型的程序,都是脱离用户的操作,只能 ...

  5. MyBatis从入门到精通(十四):在MyBatis中使用类型处理器

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解在MyBatis中如何 ...

  6. 如何在Eclipse中查看Java类库的源代码

    你的JDK安装目录下%Java_home%/src.zip文件就是源码,解压缩找到对应包下面的类即可. 如果是Eclipse开发,ctr+鼠标左击,出现不了源码的话,在弹出的视图中点击attach s ...

  7. 浅谈CMDB

    CMDB和运维自动化 一.运维 运维,指的是对已经搭建好的网络,软件,硬件进行维护.运维领域也是细分的,有硬件运维和软件运维 硬件运维主要包括对基础设施的运维,比如机房的设备,主机的硬盘,内存这些物理 ...

  8. AIX7.1安装zabbix_agent3.4

    1.在zabbix官网https://www.zabbix.com/download下载Zabbix pre-compiled agents 2.Zabbix pre-compiled agents安 ...

  9. java实现线程的两种方式

    要求:一个火车站,三个售票员卖出100张票 1.通过继承Thread类实现 实现思路:建立ThreadTest类继承Thread并建立三个线程卖100张票 public class ThreadTes ...

  10. cookbook_元编程

    1给函数添加一个包装 问题:给函数加一个外包装层,已添加额外的处理,例如,记录日志,计时统计等 解决方案:可以定义一个装饰器来包装函数 2编写装饰器时如何保存函数的元数据 问题:当一个函数被装饰器装饰 ...