您的位置:首页 > 其它

第三周项目一顺序表的基本运算(2)

2017-09-19 19:01 225 查看
/*

Copyright (c++) 2017,烟台大学计算机与控制工程学院

文件名称:first

作 者:白苗苗

完成日期:2017年9月19日

版 本 号:13.12

问题描述:线性表中初始化,插入元素,删除元素,输出元素

输入描述:

输出描述:线性表插入后的值和删除后的值。
*/

#include <stdio.h>
#include <malloc.h>
#define MaxSize 50 //Maxsize将用于后面定义存储空间的大小
typedef int ElemType; //ElemType在不同场合可以根据问题的需要确定,在此取简单的int
typedef struct
{
ElemType data[MaxSize]; //利用了前面MaxSize和ElemType的定义
int length;
} SqList;

//自定义函数声明部分
void InitList(SqList *&L);//初始化线性表
bool ListInsert(SqList *&L,int i,ElemType e);//插入元素ListInsert(L,i,e)
int Deletelist(SqList *&L,int n);//删除元素
void DispList(SqList *L);//输出线性表
bool ListEmpty(SqList *L);//判断是否为空表

//实现测试函数
int main()
{
SqList *sq;
InitList(sq);
ListInsert(sq, 1, 5);
ListInsert(sq, 2, 3);
ListInsert(sq, 1, 4);
DispList(sq);
Deletelist(sq,2);
DispList(sq);
return 0;
}

void InitList(SqList *&L)//初始化线性表
{
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}

//插入元素ListInsert(L,i,e)
bool ListInsert(SqList *&L,int i,ElemType e)
{
int j;
if(i<1||i>L->length+1)
return false;
i--;
for(j=L->length;j>i;j--)
L->data[j]=L->data[j-1];
L->data[i]=e;
L->length++;
return true;
}

//删除元素
int Deletelist(SqList *&L,int n)
{
int i;
if(n<1||n>L->length)
return 0;
for(i=n-1;i<L->length-1;i++)
{
L->data[i]=L->data[i+1];
}
L->length--;
return 0;
}

//判定是否为空表ListEmpty(L)
bool ListEmpty(SqList *L)
{
return(L->length==0);
}

//输出线性表DispList(L)
void DispList(SqList *L)
{
int i;
if (ListEmpty(L))
return;
for (i=0; i<L->length; i++)
printf("%d ",L->data[i]);
printf("\n");
}
//销毁线性表
void DestroyList(SqList *&L)
{
free(L);

}




学习心得:在学习插入和删除时理解有点困难,需要多做练习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: