`
endual
  • 浏览: 3546245 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

线性数据结构

 
阅读更多

#include<stdio.h>
#include<malloc.h>
//#define LIST_INIT_SIZE 100;//线性表存储空间的初始分配量
//#define LISTINCREMENT 10;//线性表存储空间的增量

typedef struct xianxing {

    int* elem;//空间存储地址
    int length;//当前长度
    int listsize;//当前分配的存储容量

} SqList,*PSqList;

PSqList InitList(SqList* L);//返回指针地址

bool addValue(PSqList L,int a);//增加一个数字到后面去
void showXianXing(PSqList L);//显示线性表的全部元素
bool deleteLastValue(PSqList L);//删除最后一个元素
bool alertValue(PSqList L,int value);//更改最后一个值
bool insertValue(PSqList L,int posti,int value);//指定一个位子插入
bool deletePosValue(PSqList L,int posti);//指定一个位子的删除
bool CheckIsEmpty(PSqList L);//检查是不是为空
bool clearList(PSqList L);//清空表
int  getListNum(PSqList L);//返回当前数组的个数
int  getAllListNum(PSqList L);
int main(void){

  //  SqList* pSqList = (SqList*)malloc(sizeof(SqList));
     SqList* pSqList = NULL;

    PSqList initialSqList = InitList(pSqList);

    if(initialSqList->listsize>0){
        printf("%d\n",initialSqList->listsize);
        printf("initial is successful!!!\n");
    }

    bool isAddRight = addValue(initialSqList,1);
    bool isAddRightx = addValue(initialSqList,2);
    addValue(initialSqList,3);
    addValue(initialSqList,4);
    addValue(initialSqList,5);
    addValue(initialSqList,6);
    addValue(initialSqList,7);
    addValue(initialSqList,8);
    
      int ax = 0;
      if(isAddRight){
         printf("add is successful!!!\n");
         ax =  initialSqList->elem[1];
         printf("##########%d\n",ax);
         int b=  initialSqList->length;
         printf("%d\n",b);
     }

  showXianXing(initialSqList);
  printf("\n");
  deleteLastValue(initialSqList);
  printf("\n");
  showXianXing(initialSqList);
  printf("\n");
  deleteLastValue(initialSqList);
  printf("\n");
  showXianXing(initialSqList);
  printf("\n");

  insertValue(initialSqList,3,999);
    showXianXing(initialSqList);
    printf("\n");
    insertValue(initialSqList,3,9991);
    showXianXing(initialSqList);
    return 0;
}

//初始化线性列表
SqList* InitList(SqList* L){

    L = (SqList*)malloc(sizeof(SqList));//初始化指针

    bool isRight = true;

    L->elem = (int *)malloc(sizeof(int)*100);

    if(!L->elem){
   
        isRight = false;
    }
    L->length = 0;
    L->listsize = 100;

    return L;

}

//增加一个值
bool addValue(PSqList L,int a){

    bool isRight = true;
    int nowLenght = L->length;//当前长度,数组的个数a[5] = {3,2,3,4,3}
    int allLenght = L->listsize;//当前可容纳的个数
    if(nowLenght >=allLenght){
   
        return false;
    }

     L->elem[L->length] = a;
     L->length = nowLenght +1;

    return true;
}

//显示所有值
void showXianXing(PSqList L){

    if(L==NULL&&L->length==0){
        printf("线性表没有值或者为被初始化");
        return ;
    }
    for(int i=0;i<L->length;i++){
   
        printf("%d ",L->elem[i]);
    }

    return ;

}

//检查是不是为空
bool CheckIsEmpty(PSqList L){

    int nowLength = L->length;
    if(nowLength == 0){
   
        return true;
    }
    return false;
}

//删掉最后一个值
bool deleteLastValue(PSqList L){
   
    if(L->length == 0){
   
        return false;
    }

    L->elem[L->length-1] = NULL;
    L->length = L->length -1;
   
    return true;
}

//返回当前数组的个数
int getListNum(PSqList L){

    return L->length;

}

//返回最大的容纳的数据
int  getAllListNum(PSqList L){

    return L->listsize;
}

bool insertValue(PSqList L,int posti,int value){

    if(posti<0||posti>L->length||L->length==L->listsize){
   
        return false;
    }


    int a = 0;
    int b = posti;
    L->length = L->length +1;
    for(posti;posti<L->length+1;posti++){
       
        a = L->elem[posti];
        L->elem[posti] = value;
        value = a;

    }
       // L->elem[posti] = value;
    return true;
}

分享到:
评论

相关推荐

    非线性数据结构的实现与应用(非递归).pdf

    非线性数据结构是计算机科学中处理非线性关系的数据组织方式,常见的非线性数据结构包括树、图等。在本份文档中,我们关注的焦点是树形数据结构的实现,以及其在非递归方式下的应用。树是一种非线性数据结构,它可以...

    三种线性数据结构的实现

    在计算机科学中,线性数据结构是一类组织和存储数据的方式,它们的元素按照特定的顺序排列。在这个压缩包中,包含的是三种基本线性数据结构的实现:线性表、栈和队列,每种都有数组和链式两种常见方式的实现。接下来...

    线性数据结构的实现与应用.pdf

    在这份文件中,主要介绍了基于双链表的线性数据结构在银行储蓄系统中的实现与应用,同时提供了C++语言的具体实现方法。以下详细阐述了文件中所涉及的关键知识点: 1. 线性数据结构与双链表 线性数据结构是计算机...

    贪吃蛇游戏在线性数据结构中的案例教学.pdf

    标题中所提及的“贪吃蛇游戏在线性数据结构中的案例教学”指出了一个将贪吃蛇游戏作为一个案例,应用于数据结构教学中的方法。这个方法通过游戏设计,对数据结构中的几种线性数据结构进行教学,包括顺序表、单链表、...

    线性数据结构Python实现

    利用python实现了堆栈、队列、双端队列和链表等线性数据结构,可以直接使用也可以用作学习。注释较全。

    数据结构,线性数据结构

    在Java编程语言中,数据结构可以根据其组织方式分为线性数据结构和非线性数据结构两大类。 ### 线性数据结构详解 #### 1. 数组(Array) - **定义**:数组是一种基本的线性数据结构,用于存储同类型的元素。数组...

    线性数据结构动态演示

    线性数据结构是计算机科学中基础且重要的概念,它们用于组织和管理数据,便于高效地进行各种操作。在这个“线性数据结构动态演示”中,我们主要关注的是链表和顺序表这两种常见的线性结构,它们在Java编程语言中得到...

    完整详细版 C语言版 数据结构与算法课程 第2章 线性表 线性数据结构(共122页).ppt

    线性数据结构是数据结构与算法课程中的基础概念,它是指包含n个相同性质数据元素的有限序列。这种结构的特点是具有唯一的第一元素和最后一个元素,除最后一个元素外,其他元素都有唯一的直接后继,除第一个元素外,...

    数据结构大全,从最基础的线性数据结构到树形数据结构,再到图论,排序算法

    本资料包提供了一个全面的数据结构学习资源,涵盖了从基础的线性数据结构到复杂的树形结构,再到图论和排序算法的深度探讨。以下是关于这些主题的详细解释: 1. **线性数据结构**:线性数据结构是一类元素间存在一...

    特定线性数据结构到层次数据结构的转化.pdf

    文件中指出,线性数据结构可以通过特定的顺序和限制转化为层次数据结构,具体表现在可以将线性数据结构通过遍历的方式转换为树型数据结构。比如,通过前序遍历序列和中序遍历序列可以构造出二叉树。 2. 二叉树的...

    数据结构大全,从最基础的线性数据结构到树形数据结构,再到图论,排序算法,都有完整的实现。

    这份“数据结构大全”涵盖了从基本的线性数据结构到复杂的数据结构,再到图论和排序算法,是大学生深入学习数据结构的理想资源。 1. **线性数据结构**:线性数据结构包括数组、链表、栈和队列等。数组是最基础的...

    前面我们学习的线性数据结构完美版资料.ppt

    线性数据结构通常指的是数组、链表、栈和队列等,它们的特点是每个元素都有唯一的前驱和后继,除了首尾元素。然而,在处理更复杂的数据时,这种简单的前后关系并不适用。这就引出了非线性数据结构,特别是树的概念。...

    数据结构大全,从最基础的线性数据结构到树形数据结构,再到图论,排序算法,都有完整的实现!

    本资源包"ljg_resource1"提供了全面的数据结构知识,从基础的线性数据结构到复杂的树形结构,再到图论以及排序算法的实现。 1. **线性数据结构**:线性结构是最基本的数据结构,包括数组、链表、栈和队列。数组是一...

    论线性数据结构的顺序及链式实现.pdf

    在信息技术领域中,线性数据结构是数据结构课程的基础组成部分,涵盖了数据逻辑结构到物理结构的实现。研究线性数据结构,特别是线性表的顺序实现和链式实现,对于程序设计的理论支撑和实践基础至关重要。 线性数据...

    计算机软件基础:第2章 线性数据结构-1.ppt

    【线性数据结构】是计算机科学中数据组织的基础概念,主要研究数据元素间存在的一对一关系。在这一章中,我们首先理解了【数据】和【数据结构】的定义。数据是信息的载体,随着计算机技术的发展,数据类型从最初的...

    1.线性数据结构.pdf

    "线性数据结构" 线性数据结构是计算机科学中一种基本的数据结构,它的特点是所有元素排成一排在数据元素的非空有限集合中。线性数据结构的特点是: 1. 存在唯一的一个被称作“第一个”的元素; 2. 存在唯一的一个...

    基于Vb的线性数据结构的实现.pdf

    1. 线性数据结构的基本概念:线性数据结构是数据结构中的一种,它的数据元素之间存在一对一的逻辑关系。线性结构包括数组、链表、栈、队列等,它们的共同特点是数据元素之间的关系可以用一条线性表示,每个数据元素...

    C++实现的各种数据结构(线形非线性).rar

    首先,线性数据结构主要包括数组、链表、栈和队列。数组是最基础的数据结构,它提供了固定大小的存储空间,元素可以通过索引访问。链表则通过节点间的指针链接元素,支持动态增长。栈是一种后进先出(LIFO)的数据...

    数据结构大全,从最基础的线性数据结构到树形数据结构,再到图论,排序算法,都有完整的实现。目前比较完整的是java的代.zip

    1. 线性数据结构:线性数据结构是最基础的数据结构类型,它们按照线性的顺序存储元素。常见的线性数据结构包括数组、链表、栈和队列。 - **数组**:数组是最简单也最基本的数据结构,它是一个固定大小的元素集合,...

Global site tag (gtag.js) - Google Analytics