作业帮 > 综合 > 作业

C语言数据结构实验要求:建立一顺序表,实现其基本操作:1.新建一个顺序表;2.判断是否是空表;3.输入表的长度;4.输入

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 19:41:25
C语言数据结构实验
要求:
建立一顺序表,实现其基本操作:
1.新建一个顺序表;
2.判断是否是空表;
3.输入表的长度;
4.输入线性表的各个数据元素的值;
5.求当前表长;
6.取某个位序上的数据元素;
7.求某元素的前驱和后继;
8.删除某个位置上的数据元素;
9.求删除后的表长;
10.置空表;
11.销毁线性表.
实验内容
设计程序.
调试程序,并设计输入数据.
修改程序:
实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数
现写一段代码,函数顺序与上面一一对应,自己看吧
#define MAX 1000
#define ERROR -1
typedef int Element;
typedef struct Linear{
Element *data;
int length;
}Linear,*pLinear;
Linear create_linear(){
Linear linear;
linear.data = malloc(Element*sizeof(Element));
if( !linear.data ){
printf("shit\n");
exit(0);
}
linear.length = 0;
return linear;
}
int empty_linear( Linear linear ){
if( linear.data && linear.length > 0 )
return 0;
return 1;
}
int set_linear_length( pLinear linear int length ){
if( length > MAX || length < 1 )
return 0;
pLinear->length = length;
return 1;
}
void print_linear( Linear linear ){
int i = 0;
if( linear.data && linear.length > 0 ){
for( ; i < linear.length ; ++i )
printf("%d\t",linear.data[i];
printf("\n");
return ;
}
printf("linear empty\n");
}
int get_linear_length( Linear linear ){
return linear.length;
}
int get_element_at( Linear linear ,int pos ){
if( pos > linear.length || pos < 1 || !linear.data )
return ERROR;
return linear.data[pos-1];
}
int get_pre_next( Linear linear ,int ele ,int *pre ,int *next ){
int i = 0;
for( ; i < linear.length ; ++i ){
if( linear.data[i] == ele ){
*pre = ( i == ERROR:(linear.length==1?ERROR:linear.data[i-1]));
*next = ( i==linear.length-1?ERROR:(linear.length==1?ERROR:linear.data[i+1]));
return 1;
}
}
return 0;
}
int del_element_at( pLinear linear ,int pos ){
int i=pos;
if( pos > linear->length || pos < 1 || !linear->data )
return 0;
while( i < linear->length - 1 )
linear->data[i] = linear->data[++i];
return (--(linear->length));
}
int set_empty( pLinear linear ){
linear->length = 0;
return 1;
}
int free_linear( pLinear linear ){
free( linear->data );
linear->data = NULL;
linear->length = 0;
return 1;
}