test.c
cpp
#include "test.h"
seq_p creat_list(){
seq_p L=(seq_p)malloc(sizeof(seq_list));
if(L==NULL){
printf("申请空间失败\n");
return 0;
}
L->len=0;
return L;
}
int seq_p_empt(seq_p L){
if(L=NULL){
return -12;
}
return L->len==0?1:0;
}
int seq_p_full(seq_p L){
if(L=NULL){
return -23;
}
return L->len==MAX?1:0;
}
void insert_pos(seq_p L,datatpye num,int point){
if(L=NULL){
return;
}
if(seq_p_full(L)){
printf("顺序表已满\n");
return;
}
for(int i=L->len-1;i>=point;i--){
L->data[i+1]=L->data[i];
}
L->data[point]=num;
L->len++;
}
void del_pos(seq_p L,int point){
if(L==NULL){
return;
}
if(seq_p_empt(L)){
printf("该线性表是空表\n");
}
for(int i=point;i<L->len-1;i++){
L->data[i]=L->data[i+1];
}
L->len--;
}
void del(seq_p L){
if(L==NULL){
return;
}
if(seq_p_empt(L)){
printf("线性表为空\n");
}
if(L->len==1){
printf("线性表的长度为一\n");
}
for(int i=0;i<L->len;i++){
for(int j=i+1;j<L->len;j++){
if(L->data[i]==L->data[j]){
L->data[j]=L->data[j+1];
j--;
L->len--;
}
}
}
}
void s1(seq_p L){
for(int i=0;i<L->len;i++){
printf("%d ",L->data[i]);
}
}
main.c
cpp
#include "test.h"
int main(){
seq_p L= creat_list();
insert_pos(L,1,0);
insert_pos(L,2,1);
insert_pos(L,3,2);
insert_pos(L,4,3);
insert_pos(L,5,4);
insert_pos(L,4,5);
insert_pos(L,3,6);
insert_pos(L,6,7);
s1(L);
del_pos(L,2);
s1(L);
del(L);
s1(L);
}
test,h
cpp
#ifndef __TEST_H__
#define __TEST_H__
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
typedef int datatpye;
typedef struct seq_list{
datatpye data[MAX];
int len;
}seq_list,*seq_p;
seq_p creat_list();
int seq_p_empt(seq_p L);
int seq_p_full(seq_p L);
void insert_pos(seq_p L,datatpye num,int point);
void del_pos(seq_p L,int point);
void del(seq_p L);
void s1(seq_p L);
#endif