小工具知识网

当前位置: 首页 > 行业知识 > 数据结构day3

行业知识

数据结构day3

2026-10-20 01:53:57 来源:互联网转载

顺序表的按位置插入、按位置删除和去重

main.c

#include "seq_list.h"int main(){seq_p L = create_seq_list();//printf("%d\n",seq_empty(L));//printf("%d\n",seq_full(L));insert_pos(L,1,0);insert_pos(L,3,1);    insert_pos(L,2,1);out_put(L);putchar(10);del_pos(L,1);out_put(L);putchar(10);insert_pos(L,2,1);insert_pos(L,3,3);    insert_pos(L,2,4);    insert_pos(L,4,5);    insert_pos(L,2,6);del(L);out_put(L);return 0;}

seq_list.c

#include "seq_list.h"//创建顺序表seq_p create_seq_list(){seq_p L = (seq_p)malloc(sizeof(seq_list));//在堆区申请一个顺序表的空间if(L==NULL){printf("空间申请失败\n");return NULL;}L->len = 0;  //长度置0bzero(L,sizeof(L->data)); //给数组置0return L;}//判空int seq_empty(seq_p L){//1\容错判断if(L==NULL){return -1;  //和判断结果区分开}return L->len==0?1:0;}//判满int seq_full(seq_p L){//1\容错判断//if(L==NULL){return -1;  //和判断结果区分开}return L->len==MAX?1:0;}//打印顺序表void out_put(seq_p L){if(L==NULL){return;}if(seq_empty(L)){printf("表为空\n");return;}//循环打印顺序表for(int i=0;ilen;i++){printf("%d\n",L->data[i]);}}void insert_pos(seq_p L,datatype value,int pos){if(L==NULL){printf("入参为空,请检查\n");return;}if(seq_full(L)){printf("表满\n");return;}if(pos>L->len||posdata[i+1]=L->data[i];}L->data[pos]=value;L->len++;}void del_pos(seq_p L,int pos){if(L==NULL){return;}if(seq_empty(L)){printf("表为空,无需删除\n");return;}for(int i=pos;ilen;i++){L->data[i]=L->data[i+1];}L->len--;}void del(seq_p L){if(L==NULL){return;}if(seq_empty(L)){return;}if(L->len==1){printf("只有一个元素\n");return;}for(int i=0;ilen;i++){for(int j=0;jlen;j++){if(i!=j&&L->data[i]==L->data[j]){del_pos(L,j);}}}}

seq_list.h

#ifndef __SEQ_LIST_H__#define __SEQ_LIST_H__#include #include #define MAX 7typedef int datatype;typedef struct seq_list{datatype data[MAX];int len;}seq_list,*seq_p;seq_p create_seq_list();int seq_full(seq_p L);int seq_empty(seq_p L);void out_put(seq_p L);void insert_pos(seq_p L,datatype value,int pos);void del_pos(seq_p L,int pos);void del(seq_p L);#endif 

运行���果

上一篇:共享打印机主机打完其他才能打

下一篇:fileupload图片怎么传到服务器?