`
109735215
  • 浏览: 33228 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

线性表的基本(C程序)

 
阅读更多

分三个文件写

//.cpp main函数

//说明:线性表的试验
#include<stdio.h>
#include<malloc.h>
#include "SqList.h"


//主函数
void main()
{
SqList L;
int i, n=11;
ElemType e;
if(InitList_Sq(L)==OK)
{ // 线性表List 初始化成功
for(i=1;i<=n;i++)
if(ListInsert_Sq(L,i,i)!=OK) break;
// 插入值1 到 n
printf("/n"); // 换行
for(i=0;i<L.length;i++)
printf("i,e=%d,%d/n",i,L.elem[i]); // 打印值1到n
getchar(); // 等待键盘响应
if(ListDelete_Sq(L,5,e)==OK){
// 删除第5个元素
printf("delete_elem=%d/n",e);
// 打印被删除的元素
getchar(); // 等待键盘响应
for(i=0;i<L.length;i++)
printf("i,e=%d,%d/n",i,L.elem[i]);
// 打印线性表Lst的所有元素
}
}
}


.cpp 线性表基本操作

//这里存贮的是线性表的基本操作

#include<stdio.h>
#include<malloc.h>
#include "SqList.h"

//建立一个空的线性表
Status InitList_Sq(SqList &L)
{
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if (!L.elem)
{
return(OVERFLOW); //看看存储分配失败
}
L.length=0; //线性表的长度为0
L.listsize=LIST_INIT_SIZE; //初始化存储容量
return OK; //成功我们就ok
}

// 将e插入我们所建的线性表中去
Status ListInsert_Sq(SqList &L, int i, ElemType e)
{
ElemType *p; //定义指针 // i应该是1和ListLength_Sq(L)+1之间的值
ElemType *newbase;
if(i>L.length+1 || i<1)
{
return ERROR; //i不是正确的位子,超出了线性表的定义长度
}
if(L.length>L.listsize)
{

newbase = (ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof (ElemType)); //如果线性表已经满了,我们就得重新分配空间
if (!newbase)
{
return ERROR; //增值失败
}
L.elem = newbase;
L.listsize += LISTINCREMENT;
}


ElemType *q = &(L.elem[i-1]); // q为插入位置

for (p = &(L.elem[L.length-1]); p>=q; --p)
*(p+1) = *p; // 插入位置及之后的元素右移
*q = e; // 插入e
++L.length; // 表长增1
return OK;

}

//消除线性表
Status ListDelete_Sq(SqList &L,int i,ElemType &e)
{
ElemType *p, *q;
if (i<1 || i>L.length) return ERROR; // i值不合法
p = &(L.elem[i-1]); // p为被删除元素的位置
e = *p; // 被删除元素的值赋给e
q = L.elem+L.length-1; // 表尾元素的位置
for (++p; p<=q; ++p) *(p-1) = *p; // 被删除元素之后的元素左移
--L.length; // 表长减1
return OK;
}

.h文件 连接就靠她了

//这里存贮的是线性表的基本操作

#include<stdio.h>
#include<malloc.h>
#include "SqList.h"

//建立一个空的线性表
Status InitList_Sq(SqList &L)
{
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if (!L.elem)
{
return(OVERFLOW); //看看存储分配失败
}
L.length=0; //线性表的长度为0
L.listsize=LIST_INIT_SIZE; //初始化存储容量
return OK; //成功我们就ok
}

// 将e插入我们所建的线性表中去
Status ListInsert_Sq(SqList &L, int i, ElemType e)
{
ElemType *p; //定义指针 // i应该是1和ListLength_Sq(L)+1之间的值
ElemType *newbase;
if(i>L.length+1 || i<1)
{
return ERROR; //i不是正确的位子,超出了线性表的定义长度
}
if(L.length>L.listsize)
{

newbase = (ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof (ElemType)); //如果线性表已经满了,我们就得重新分配空间
if (!newbase)
{
return ERROR; //增值失败
}
L.elem = newbase;
L.listsize += LISTINCREMENT;
}


ElemType *q = &(L.elem[i-1]); // q为插入位置

for (p = &(L.elem[L.length-1]); p>=q; --p)
*(p+1) = *p; // 插入位置及之后的元素右移
*q = e; // 插入e
++L.length; // 表长增1
return OK;

}

//消除线性表
Status ListDelete_Sq(SqList &L,int i,ElemType &e)
{
ElemType *p, *q;
if (i<1 || i>L.length) return ERROR; // i值不合法
p = &(L.elem[i-1]); // p为被删除元素的位置
e = *p; // 被删除元素的值赋给e
q = L.elem+L.length-1; // 表尾元素的位置
for (++p; p<=q; ++p) *(p-1) = *p; // 被删除元素之后的元素左移
--L.length; // 表长减1
return OK;
}

分享到:
评论

相关推荐

    c程序的线性表程序

    本文将详细介绍C语言实现的线性表程序,包括线性表的基本操作和多项式运算。通过本文,读者将掌握线性表的逻辑结构、存储结构及其基本操作,并了解线性表在多项式运算中的应用。 一、线性表的基本操作 线性表是一...

    线性表的合并/c语言

    在这个“线性表的合并/c语言”项目中,我们将探讨如何使用C语言来实现线性表的合并操作,特别是针对有序线性表的合并。此程序采用单链表作为线性表的实现方式,它是一种动态数据结构,允许在运行时添加或删除元素。 ...

    线性表基本操作 C语言

    线性表是一种基础的数据结构,它是由相同类型元素构成的有限序列。...这个过程不仅需要掌握C语言的基本语法,还需要理解链表特性和操作逻辑,这对于后续学习更复杂的数据结构和算法有着重要的铺垫作用。

    线性表(C语言)源码

    根据给定的文件信息,我们可以总结出以下关于“线性表(C语言)源码”的相关知识点: ### 1. 线性表的基本概念 线性表是数据结构中最基本的一种逻辑结构,它是由一组数据元素组成的一个有限序列。在计算机科学中,...

    线性表的基本操作的实验报告

    3. 熟悉C语言程序的基本结构,包括头文件、实现文件和主文件的使用。 4. 熟练使用C语言环境,掌握多文件程序的开发流程。 5. 深化对顺序存储结构的理解,提升解决实际问题的能力。 二、实验要求: 1. 精通线性表的...

    C语言实现的顺序线性表

    本篇文章将深入探讨如何使用C语言来实现顺序线性表,包括其基本操作,如创建、插入数据、获取数据、删除数据、获取存放的数据量、清空线性表以及销毁线性表。 顺序线性表是由一组具有相同类型元素构成的序列,这些...

    线性表通信录【c语言实现】.pdf

    在本篇文档中,详细介绍了如何使用C语言实现一个基本的线性表通讯录管理系统。该系统利用顺序存储结构来组织和管理数据,适用于在校大学生学习数据结构与算法时进行实践操作。以下是文档中提及的关键知识点: 1. ...

    C语言: 顺序存储结构线性表基本操作 纯C语言实现

    根据给定的文件信息,我们可以总结出以下关于“顺序存储结构线性表基本操作纯C语言实现”的相关知识点。 ### 一、概述 本代码示例主要介绍了如何使用C语言来实现顺序存储结构的线性表(即数组实现的线性表)的基本...

    线性表子系统 C语言源程序

    根据给定的文件信息,以下是对“线性表子系统 C语言源程序”的知识点解析: ### 一、线性表子系统的实现 ...这个程序通过C语言实现了链式线性表的基本操作,包括创建、插入、删除、显示以及查找等功能。

    顺序存储结构线性表c程序源码

    在这个特定的压缩包中,"顺序存储结构线性表c程序源码"提供了C语言实现线性表操作的代码。 线性表的顺序存储是指所有元素在内存中占用连续的存储空间,通过数组来实现。这种方式的优点是访问速度快,因为数组中的...

    2、 掌握线性表的基本操作:初始化,插入,删除,查找,判空,求线性表长度等运算在顺序存储结构和链式存储结构上的实现

    其中,必须实现的线性表基本操作为:InitList、 ClearList、ListEmpty、ListLength、GetElem、PriorElem、ListInsert、ListDelete这8个基本操作,其余的可以选作。 2、 所写源代码编程风格良好,有详细注释。 3、 ...

    数据结构线性表的程序设计

    1、 用C语言建立自己的线性表结构的程序库,实现顺序表的基本操作。 2、 对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序表,且使得数据按从小到大的顺序存放,将两个集合的并、交...

    数据结构中线性表的相关算法的c语言实现

    2. **C语言实现线性表的基本结构**:在C语言中,线性表通常用数组或链表来实现。数组实现的线性表在内存中连续存储,访问速度快但插入和删除操作可能涉及大量元素的移动;链表实现则通过指针链接元素,插入和删除...

    数据结构实验报告-线性表-线性表基本操作算法5分-实验内容及要求.docx

    - **实验题目**:线性表基本操作算法 - **实验者信息**:学号2019xxxxxx,姓名张三,专业计算机科学与技术 - **完成日期**:2020年10月09日 - **知识范畴**:线性表 #### 实验内容及要求 1. **输入处理**:从键盘...

    线性表的线性表的基本操作(C++)

    通过这些知识点,我们可以构建出一个功能丰富的线性表管理程序,它不仅涵盖了线性表的基本操作,还提供了良好的用户交互体验。在实际应用中,这样的程序可以被用于各种场景,例如数据的存储和处理,算法的实现等。在...

    线性表的基本操作 数据结构C语言实现

    本主题将深入探讨线性表的基本操作及其在C语言中的实现。 1. **线性表的定义** - 线性表的顺序表示:使用一维数组存储线性表的元素,便于随机访问,但插入和删除操作可能导致大量的元素移动。 - 线性表的链式表示...

    【学生版】实验一 线性表基本操作的编程实现.doc

    线性表基本操作的编程实现 本文将介绍线性表基本操作的编程实现,包括线性表的建立、遍历、插入、删除等基本操作的编程实现,并提供了相关的代码实现。 一、实验目的 线性表基本操作的编程实现旨在让学生掌握...

    数据结构实验线性表基本操作.doc

    数据结构实验线性表基本操作 本实验报告主要介绍了数据结构中线性表的基本操作,包括顺序存储结构和链式存储结构的实现。实验目的包括熟悉 C 语言的上机环境,掌握线性表的顺序存储结构和链式存储结构的定义与 C ...

Global site tag (gtag.js) - Google Analytics