分三个文件写
//.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语言)源码”的相关知识点: ### 1. 线性表的基本概念 线性表是数据结构中最基本的一种逻辑结构,它是由一组数据元素组成的一个有限序列。在计算机科学中,...
3. 熟悉C语言程序的基本结构,包括头文件、实现文件和主文件的使用。 4. 熟练使用C语言环境,掌握多文件程序的开发流程。 5. 深化对顺序存储结构的理解,提升解决实际问题的能力。 二、实验要求: 1. 精通线性表的...
本篇文章将深入探讨如何使用C语言来实现顺序线性表,包括其基本操作,如创建、插入数据、获取数据、删除数据、获取存放的数据量、清空线性表以及销毁线性表。 顺序线性表是由一组具有相同类型元素构成的序列,这些...
在本篇文档中,详细介绍了如何使用C语言实现一个基本的线性表通讯录管理系统。该系统利用顺序存储结构来组织和管理数据,适用于在校大学生学习数据结构与算法时进行实践操作。以下是文档中提及的关键知识点: 1. ...
根据给定的文件信息,我们可以总结出以下关于“顺序存储结构线性表基本操作纯C语言实现”的相关知识点。 ### 一、概述 本代码示例主要介绍了如何使用C语言来实现顺序存储结构的线性表(即数组实现的线性表)的基本...
根据给定的文件信息,以下是对“线性表子系统 C语言源程序”的知识点解析: ### 一、线性表子系统的实现 ...这个程序通过C语言实现了链式线性表的基本操作,包括创建、插入、删除、显示以及查找等功能。
在这个特定的压缩包中,"顺序存储结构线性表c程序源码"提供了C语言实现线性表操作的代码。 线性表的顺序存储是指所有元素在内存中占用连续的存储空间,通过数组来实现。这种方式的优点是访问速度快,因为数组中的...
其中,必须实现的线性表基本操作为:InitList、 ClearList、ListEmpty、ListLength、GetElem、PriorElem、ListInsert、ListDelete这8个基本操作,其余的可以选作。 2、 所写源代码编程风格良好,有详细注释。 3、 ...
1、 用C语言建立自己的线性表结构的程序库,实现顺序表的基本操作。 2、 对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序表,且使得数据按从小到大的顺序存放,将两个集合的并、交...
2. **C语言实现线性表的基本结构**:在C语言中,线性表通常用数组或链表来实现。数组实现的线性表在内存中连续存储,访问速度快但插入和删除操作可能涉及大量元素的移动;链表实现则通过指针链接元素,插入和删除...
- **实验题目**:线性表基本操作算法 - **实验者信息**:学号2019xxxxxx,姓名张三,专业计算机科学与技术 - **完成日期**:2020年10月09日 - **知识范畴**:线性表 #### 实验内容及要求 1. **输入处理**:从键盘...
通过这些知识点,我们可以构建出一个功能丰富的线性表管理程序,它不仅涵盖了线性表的基本操作,还提供了良好的用户交互体验。在实际应用中,这样的程序可以被用于各种场景,例如数据的存储和处理,算法的实现等。在...
本主题将深入探讨线性表的基本操作及其在C语言中的实现。 1. **线性表的定义** - 线性表的顺序表示:使用一维数组存储线性表的元素,便于随机访问,但插入和删除操作可能导致大量的元素移动。 - 线性表的链式表示...
线性表基本操作的编程实现 本文将介绍线性表基本操作的编程实现,包括线性表的建立、遍历、插入、删除等基本操作的编程实现,并提供了相关的代码实现。 一、实验目的 线性表基本操作的编程实现旨在让学生掌握...
数据结构实验线性表基本操作 本实验报告主要介绍了数据结构中线性表的基本操作,包括顺序存储结构和链式存储结构的实现。实验目的包括熟悉 C 语言的上机环境,掌握线性表的顺序存储结构和链式存储结构的定义与 C ...