`
bsr1983
  • 浏览: 1117487 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言实现的顺序链表代码

阅读更多

      数据结构上机考试练习代码,置于此以备后用!

 

    

#include<stdio.h>
#define ListSize 100
//定义顺序表存放的数据类型
typedef int DataType;
//定义顺序表的结构
typedef struct{
    //用于存放元素的数组
    DataType data[ListSize];
    //用于标示顺序表元素个数的变量
    int length;
}Seqlist;
//顺序表插入
void InsertList(Seqlist *L,DataType x,int i)
{
    int j;
    //如果插入位置i小于1或大于当前顺序表长度,则提示出错
    if(i<1||i>L->length+1)
    {
        Error("position error");
        return;
    }
    //如果当前顺序表长度已达峰值,则提示溢出
    if(L->length>=ListSize)
    {
        Error("overflow");
        return;
    }
    //循环后移插入位置及其后边的元素
    for(j=L->length-1;j>i-1;j--)
    {
        L->data[j+1]=L->data[j];
    }
    //插入数据
    L->data[i-1]=x;
    L->length++;
}
//打印错误
void Error(char *c)
{
     printf("there is a error : %s \n",c);
}
void DeleteList(Seqlist *L,int i)
{
    int j;
    //如果当前顺序表的长度为0,则提示当前顺序表为空
    if(L->length==0)
    {
        Error("this list is null");
    }
    //如果当前指定的位置小于1或大于表长,则提示其位置错误
    else if(i<1||i>L->length)
    {
        Error("position error");
    }
    else
    {
         //否则,循环将位置i之后的原始顺序前移一位
        for(j=i;j<=L->length-1;j++)
        {
            L->data[j-1]=L->data[j];
        }
        //表长减1
         L->length--;
    }

}
//打印表中所有元素
void PrintList(Seqlist *L)
{
    int i;
     //如果当前顺序表的长度为0,则提示当前顺序表为空
    if(L->length==0)
    {
        Error("this list is null");
        return;
    }
    else
    {
        for(i=0;i<L->length-1;i++)
        {
           printf("%d ",L->data[i]);
        }
    }
}
int main()
{
    int i;
    Seqlist *list;
    list=(Seqlist*)malloc(sizeof(list));
    for(i=1;i<ListSize;i++)
    {
       InsertList(list,i,i);
    }
    PrintList(list);
    printf("the data element of seqlist is %d \n",list->length);
    DeleteList(list,20);
    printf("the data element of seqlist is %d \n",list->length);
    free(list);//释放list所占用内存
}

 

 

分享到:
评论

相关推荐

    顺序链表C语言实现代码

    本主题聚焦于顺序链表(单链表)的C语言实现,包括正序创建、逆序创建、输出、删除、插入节点、求链表长度以及合并链表等操作。 1. **链表的基本概念**:链表由一系列节点组成,每个节点包含数据和指向下一个节点的...

    C语言 顺序链表 单链表 双链表 栈等程序

    本压缩包文件包含了关于C语言中数据结构实现的一些程序,具体涉及到了顺序链表、单链表和双链表以及栈的数据结构。下面我们将详细探讨这些知识点。 首先,我们来看顺序链表。顺序链表是一种线性数据结构,其元素在...

    C语言实现顺序表代码.rar

    本资源"**C语言实现顺序表代码**"提供了一种用C语言编写的顺序表实现,这对于学习数据结构和算法的初学者来说是一份宝贵的参考资料。下面将详细讨论C语言实现顺序表涉及的知识点。 1. **数组**:在C语言中,数组是...

    C语言实现单向链表的创建、插入,删除节点,和2个链表合并

    本文将详细讲解如何使用C语言在Microsoft Visual C++ 6.0环境下实现单向链表的创建、插入、删除节点以及两个链表的合并。 一、单向链表的基本概念 单向链表是一种线性数据结构,每个元素(称为节点)包含两部分:...

    用C语言实现异质链表

    通过上述描述和代码片段,我们可以了解到,虽然C语言缺乏泛型数据结构的支持,但通过结构体和联合体,我们可以模拟出类似于泛型链表的数据结构,从而实现一种可以存储不同类型数据的异质链表。这种实现方式需要仔细...

    纯C语言实现的通用链表(类)源代码

    本资源提供了纯C语言实现的通用链表类的源代码,这对于理解和实践数据结构与算法的学习者来说是非常有价值的。 链表的主要优点在于它的动态性,可以在运行时灵活地增加或删除元素,而无需预先知道其大小。这个通用...

    贪食蛇【C语言 双向链表实现】

    本文将深入探讨如何使用C语言和双向链表来实现这款游戏。首先,我们要理解双向链表的基本概念。 双向链表是一种线性数据结构,与单链表不同,每个节点不仅包含数据,还包含两个指针,分别指向前后相邻的节点。这种...

    数据结构中十字链表的C语言实现

    根据给定的信息,本文将详细解释“数据结构中十字链表的C语言实现”这一主题。主要内容包括:十字链表的基本概念、十字链表在C语言中的实现方式、创建十字链表的过程、打印十字链表的方法以及两个十字链表相加的算法...

    栈的链表实现与测试代码(C语言)

    这个项目是学习数据结构和算法的好实例,它展示了如何用C语言实现一个基本的链表栈,并通过测试代码验证其实现的正确性。理解这种实现有助于加深对栈工作原理的理解,也有助于提升C语言编程能力。

    C语言顺序表_单链表_双链表代码.zip

    本压缩包"**C语言顺序表_单链表_双链表代码.zip**"提供了C语言实现的三种基本数据结构——顺序表、单链表和双链表的源代码,这些代码适用于初学者学习和实践。以下将详细介绍这三种数据结构及其应用。 **1. 顺序表*...

    C语言课件包括链表等

    【C语言链表详解】 C语言是编程领域中基础且重要的编程语言之一,它以其高效、灵活和贴近底层硬件的特点,被广泛应用于系统开发、软件工程等多个领域。在这个"链表"主题的C语言课件中,我们将会深入探讨链表这种...

    C语言单向链表、顺序表、双向链表、循环链表代码实现

    链表实现(单向链表、顺序表、双向链表、循环链表)的相关代码

    C语言数据结构链表队列操作

    队列可以使用两种方式实现:顺序存储(数组)和链式存储(链表)。 2. 队列操作: - 初始化队列:创建一个空队列,对于链式队列,可以设置队头和队尾指针都为NULL。 - 入队:在队尾添加元素,链式队列中,只需...

    CList.zip_CList_C语言实现vector_链表 c语言

    在C语言中,由于没有内置的动态数组容器如C++中的`std::vector`,因此开发者需要手动实现类似的功能。`CList.zip`文件提供了一个...通过分析和实践这个代码,你可以深入了解链表的内部工作原理,提升C语言编程能力。

    双向链表API及C语言实现

    双向链表的API和C语言...另外还有线性表顺序存储、单链表、循环链表的C语言实现,文章及代码资源均已上传,可在专栏《数据结构与算法学习笔记》中查看,欢迎大家查看下载,如果内容有不合理的地方,欢迎大家批评指正。

    链表实验-C语言实现

    这个"链表实验-C语言实现"的资源包含了关于链表操作的实践教程。 链表主要由节点(Node)组成,每个节点包含两部分:数据域(Data)和指针域(Pointer)。数据域用于存储实际的数据,而指针域指向下一个节点的地址...

    c语言数据结构链表

    在给定的代码中,`print` 函数实现了链表的遍历功能,它从头节点开始,依次打印每个节点的信息直到链表的末尾。 #### 3. 插入节点 插入节点是指在链表的指定位置添加一个新的节点。在给定的代码中,`insert` 函数...

    用C语言实现数据结构的所有代码(代码版)

    3. **栈**:栈是一种后进先出(LIFO)的数据结构,C语言中可以通过数组或链表实现。常用的操作有push(压栈)、pop(出栈)和peek(查看栈顶元素)。 4. **队列**:队列是一种先进先出(FIFO)的数据结构,C语言中...

    c语言数据结构线性表实验(包括顺序表和链表)

    在这个"C语言数据结构线性表实验"中,我们将深入探讨两种实现线性表的方法:顺序表和链表。 1. **顺序表**: - **定义**:顺序表是将数据元素存储在一块连续的内存区域中,每个元素都有一个固定的索引位置。 - **...

    C语言的基本程序 链表顺序表等

    在“C语言的基本程序 链表顺序表等”这个主题中,我们将深入探讨C语言的基础知识,特别是链表和顺序表这两种数据结构。 一、C语言基础 1. 变量与数据类型:C语言提供多种数据类型,如int、float、char等,用于存储...

Global site tag (gtag.js) - Google Analytics