数据结构作业1
`
#include <stdio.h>
#include <stdlib.h>
typedef int DataType;
typedef struct SeqList
{
int MAXNUM;
DataType *elemennt;
int n;
}SeqList;
typedef struct SeqList *List;
//0.创建一个空顺序表
List newList(int m){
List list = (List)malloc(sizeof(struct SeqList));
if (list == NULL)
{
printf("顺序表结构体内存分配失败");
return NULL;
}
list->elemennt = (DataType *)malloc(sizeof(DataType) * m);
if (list->elemennt == NULL)
{
printf("数组内存分配失败");
return NULL;
}
list->n = 0;
list->MAXNUM = m;
return list;
}
//1.判断是否为空列表
int isNullList(List list){
return(list->n == 0);
}
//2.查找第一个值为x的元素的下标
int locate_x(List list,DataType x){
for (int i = 0; i < list->n; i++)
{
if (list->elemennt == x)
{
return i;
}
}
return -1;
}
//3.在下标为p的元素之前,插入一个值为x的元素
int insetPre_x(List list,int p,DataType x){
if (list->n == list->MAXNUM){
printf("空间不足");
return -1;
}
for (int i = list->n-1; i >=p ; i--)
{
list->elemennt[i+1] = list->elemennt[i];
list->elemennt[p] = x;
}
}
//4.在下标为p的元素之后,插入一个值为x的元素
int insetPost_x(List list,int p,DataType x){
if (list->n == list->MAXNUM){
printf("空间不足");
return -1;
}
for (int i = list->n-1; i > p ; i--)
{
list->elemennt[i+1] = list->elemennt[i];
list->elemennt[p+1] = x;
}
}
//5.删除下标为p的元素
int delete_p(List list,int p){
for (int i = p; i < list->n-1; i++)
{
list->elemennt[i] = list->elemennt[i+1] ;
}
}
//6.删除顺序表中第一个值为x的元素
int delete_x(List list,DataType x){
int p;
p = locate_x(list,x);
if (p == -1)
{
printf("要删除的元素不存在!");
return 0;
}
delete_p(list,p);
return 1;
}
`

浙公网安备 33010602011771号