华科数据结构上机-顺序线性表的基本操作源代码

这是一个C++程序,用于实现顺序线性表的基本操作,包括创建、销毁、清空、判断是否为空、获取长度、查找元素、获取前驱和后继、插入和删除元素等功能。程序定义了一个结构体 SqList 代表顺序表,并提供了相应的函数来完成各种操作。目前部分功能如初始化、销毁、清空等仍待实现。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
//还是有些问题,存档待复盘.
//实验一:顺序存储结构实现线性表的基本运算
//函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
//Status是函数的类型,其值是函数结果状态代码
typedef int Status;

//数据元素类型定义
typedef struct{
	int item1;
}ElemType;

//----线性表的动态分配顺序存储结构---
#define LIST_INIT_SIZE 100 //P22-线性表存储空间的初始分配量
#define LISTINCREMENT 10 //线性表存储空间的分配增量

typedef struct{
    //定义顺序表L的结构体
    ElemType *elem;  //存储空间基址 数组指针elem指示线性表的基地址
    int length; //当前长度
    int listsize;   //当前分配的存储容量,以sizeof(ElemType)为单位
    }SqList;

//函数声明
Status IntiaList(SqList * L);
Status DestroyList(SqList * L);
Status ClearList(SqList L);
Status ListEmpty(SqList L);
int ListLength(SqList L);
Status GetElem(SqList L,int i,ElemType *e);
Status LocateElem(SqList L,ElemType e);
Status PriorElem(SqList L,ElemType cur_e,ElemType * pre_e);
Status NextElem(SqList L,ElemType cur,ElemType * next_e);
Status ListInsert(SqList *L, int i,ElemType e);
Status ListDelete(SqList * L,int i,ElemType * e);
Status ListTrabverse(SqList L);

Status compare(ElemType e1,ElemType e2);
Status visit(ElemType e);


Status compare(ElemType e1 ,ElemType e2){
    //compare函数
    if (e1.item1==e2.item1) return OK;
    else return FALSE;
}

Status visit(ElemType e1){
    //visit函数
    printf("%d  ",e1);
    return OK;
}

void create(SqList *L){
    //create函数:创建顺序线性表
    int a=0,i=0;
    printf("请输入你的线性表长度\n");
    scanf("%d",&a);
        //malloc:申请一块动态内存
        L->elem=(ElemType*)malloc((a+1)*sizeof(ElemType));
        L->length=a;    //线性表L的长度设为a
        printf("请输入你的数据\n");
        for (i=1;i<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值