(1)
/*
文件名称:顺序表的基本运算
作 者:胡德杰
完成日期:2017年9月7号
版 本 号:v1.1.3
*/
#include"stdio.h"
#include"malloc.h"
#define MaxSize 50
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int length;
}SqList;
bool ListEmpt(SqList *&L) //判断是不是空列表
{
return (L->length==0);
}
void DispList(SqList *&L) //显示列表
{
if(ListEmpt(L))
return ;
int i;
for(i=0;i<(L->length);i++)
{
printf("%d ",L->data[i]);
}
}
void CreateList(SqList *&L,ElemType a[],int n) //创建列表。
{
int i;
L=(SqList *)malloc(sizeof(SqList));
for(i=0;i<n;i++)
{
L->data[i]=a[i];
L->length=n;
}
}
int main()
{
SqList *sq;
ElemType x[6]={5,8,7,2,4,9};
CreateList (sq,x,6);
ListEmpt(sq);
DispList(sq);
return 0;
}
(2)
/*
文件名称:顺序表的基本运算
作 者:胡德杰
完成日期:2017年9月7号
版 本 号:v1.1.3
*/
#include"stdio.h"
#include"malloc.h"
#define MaxSize 50
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int length;
}SqList;
bool ListEmpt(SqList *&L) //判断是不是空列表
{
return (L->length==0);
}
int ListLength(SqList *&L) //求列表长度
{
return (L->length);
}
void DispList(SqList *&L) //显示列表
{
if(ListEmpt(L))
return ;
int i;
for(i=0;i<(L->length);i++)
{
printf("%d ",L->data[i]);
}
}
bool GetElem(SqList *&L,int i,ElemType &e) //求某个数据元素值
{
if(i<1 || i>L->length)
return false;
e=L->data[i-1];
return true;
}
void CreateList(SqList *&L,ElemType a[],int n) //创建列表。
{
int i;
L=(SqList *)malloc(sizeof(SqList));
for(i=0;i<n;i++)
{
L->data[i]=a[i];
L->length=n;
}
}
int LocateElem(SqList *&L,ElemType e) //按元素查找
{
int i=0;
while(i<L->length && L->data[i]!=e)
i++;
if(i>=L->length)
return 0;
else
return i+1;
}
int main()
{
SqList *sq;
ElemType a;
int loc;
ElemType x[6]={5,8,7,2,4,9};
CreateList (sq,x,6);
ListEmpt(sq);
DispList(sq);
printf("\n表wqq长度:%d\n", ListLength(sq)); //测试求长度
if(GetElem(sq, 3, a)) //测试在范围内的情形
printf("找到了第3个元素值为:%d\n", a);
else
printf("第3个元素超出范围!\n");
if(GetElem(sq, 15, a)) //测试不在范围内的情形
printf("找到了第15个元素值为:%d\n", a);
else
printf("第15个元素超出范围!\n");
if((loc=LocateElem(sq, 8))>0) //测试能找到的情形
printf("找到了,值为8的元素是第 %d 个\n", loc);
else
printf("值为8的元素木有找到!\n");
if((loc=LocateElem(sq, 17))>0) //测试不能找到的情形
printf("找到了,值为17的元素是第 %d 个\n", loc);
else
printf("值为17的元素木有找到!\n");
return 0;
}
(3)
/*
文件名称:顺序表的基本运算
作 者:胡德杰
完成日期:2017年9月7号
版 本 号:v1.1.3
*/
#include"stdio.h"
#include"malloc.h"
#define MaxSize 50
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int length;
}SqList;
bool ListEmpt(SqList *&L) //判断是不是空列表
{
return (L->length==0);
}
int ListLength(SqList *&L) //求列表长度
{
return (L->length);
}
void DispList(SqList *&L) //显示列表
{
if(ListEmpt(L))
return ;
int i;
for(i=0;i<(L->length);i++)
{
printf("%d ",L->data[i]);
}
}
bool GetElem(SqList *&L,int i,ElemType &e) //求某个数据元素值
{
if(i<1 || i>L->length)
return false;
e=L->data[i-1];
return true;
}
void CreateList(SqList *&L,ElemType a[],int n) //创建列表。
{
int i;
L=(SqList *)malloc(sizeof(SqList));
for(i=0;i<n;i++)
{
L->data[i]=a[i];
L->length=n;
}
}
int LocateElem(SqList *&L,ElemType e) //按元素查找
{
int i=0;
while(i<L->length && L->data[i]!=e)
i++;
if(i>=L->length)
return 0;
else
return i+1;
}
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;
}
bool ListDelete(SqList *&L,int i,ElemType &e) //删除数据元素
{
int j;
if(i<1||i>L->length)
return false;
i--;
e=L->data[i];
for(j=i;j<L->length-1;j++)
L->data[j]=L->data[j+1];
L->length--;
return true;
}
void InitList(SqList *&L) //初始化列表
{
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
int main()
{
SqList *sq;
InitList(sq);
ListInsert(sq, 1, 5);
ListInsert(sq, 2, 3);
ListInsert(sq, 1, 4);
DispList(sq);
return 0;
}
知识点总结:顺序表的各个程序的书写以及测试。
学习心得:这个程序对我感觉很大,自己花了好久才写出来,不过这个过程让我学到了很多,在以后锻炼的过程中一定会跟假的熟练。