文章目录
一、思维导图

二、实现顺序表的功能代码
head.h
#ifndef __HEAD_H__#define __HEAD_H__#include #include #include #define MAXSIZE 5enum type{FALUSE=-1,SUCCESS};typedef int datatype;typedef struct sqlist{datatype data[MAXSIZE];int len;}*sqlist;sqlist create_sqlist();int insert_rear(sqlist list,datatype element);int output(sqlist list);int delate_rear(sqlist list);int search_index(sqlist list,datatype index);int delate_index(sqlist list,datatype index);int change_index(sqlist list,int index,int element);int insert_index(sqlist list,int index,int element);int de_weight(sqlist list);int sort(sqlist list);int search_yuansu(sqlist list,int number);int delate_yuansu(sqlist list,int number);int change_yuansu(sqlist list,int number,int element);#endif
test.c
#include \"head.h\"sqlist create_sqlist(){sqlist list=(sqlist)malloc(sizeof(struct sqlist));if(NULL==list){return NULL;}bzero(list->data,sizeof(list->data));list->len=0;return list;}int insert_rear(sqlist list,datatype element){if(NULL==list||list->len==MAXSIZE){printf(\"sqlist full..\\n\");return FALUSE;}list->data[list->len]=element;list->len++;return SUCCESS;}int output(sqlist list){if(list==NULL||list->len==0){printf(\"output error...\\n\");return FALUSE;}for(int i=0;i<list->len;i++){printf(\"%d\\t\",list->data[i]);}putchar(10);}int delate_rear(sqlist list){if(list==NULL||list->len==0){printf(\"delate_rear error..\\n\");return FALUSE;}list->len--;return SUCCESS;}int search_index(sqlist list,datatype index){if(list==NULL||list->len==0||index<0||index>=list->len){printf(\"search_index error...\\n\");return FALUSE;}printf(\"%d\\n\",list->data[index]);return SUCCESS;}int delate_index(sqlist list,datatype index){if(list==NULL||list->len==0||index<0||index>=list->len){printf(\"delate_index error...\\n\");return FALUSE;}for(int i=index;i<list->len;i++){list->data[i]=list->data[i+1];}list->len--;return SUCCESS;}int change_index(sqlist list,int index,int element){if(list==NULL||list->len==0||index<0||index>=list->len){printf(\"change_index error...\\n\");return FALUSE;}list->data[index]=element;return SUCCESS;}int insert_index(sqlist list,int index,int element){if(list==NULL||index<0||index>list->len){printf(\"insert_index error...\\n\");return FALUSE;}if(list->len==MAXSIZE){printf(\"内存已满无法插入\\n\");return FALUSE;}list->len++;for(int i=list->len;i>index;i--){list->data[i-1]=list->data[i-2];}list->data[index]=element;return SUCCESS;}int de_weight(sqlist list){if(list==NULL||list->len==0){printf(\"de_weight error..\\n\");return FALUSE;}for(int i=0;i<list->len;i++){for(int j=i+1;j<list->len;j++){if(list->data[i]==list->data[j]){delate_index(list,j);j--;}}}return SUCCESS;}int sort(sqlist list){if(list==NULL||list->len==0){printf(\"sort error..\\n\");return FALUSE;}for(int i=0;i<list->len-1;i++){for(int j=0;j<list->len-i-1;j++){if(list->data[j]>list->data[j+1]){int temp=list->data[j];list->data[j]=list->data[j+1];list->data[j+1]=temp;}}}return SUCCESS;}int search_yuansu(sqlist list,int number){if(list==NULL||list->len==0){printf(\"sort error..\\n\");return FALUSE;}for(int index=0;index<list->len;index++){if(list->data[index]==number){return index;}}return FALUSE;}int delate_yuansu(sqlist list,int number){if(list==NULL||list->len==0){printf(\"delate_yuansu error..\\n\");return FALUSE;}int index=search_yuansu(list,number);delate_index(list,index);return SUCCESS;}int change_yuansu(sqlist list,int number,int element){if(list==NULL||list->len==0){printf(\"change_yuansu error..\\n\");return FALUSE;}int index=search_yuansu(list,number);change_index(list,index,element);return SUCCESS;}
main.c
#include \"head.h\"int main(int argc, const char *argv[]){sqlist list=create_sqlist();datatype element;for(int i=0;i<MAXSIZE;i++){printf(\"请输入一个值:\");scanf(\"%d\",&element);insert_rear(list,element);}output(list);delate_rear(list);delate_rear(list);printf(\"尾删之后;\");output(list);int index;printf(\"输入要查找的下标的值:\");scanf(\"%d\",&index);search_index(list,index);printf(\"输入要修改的下标:\");scanf(\"%d\",&index);printf(\"输入要改成的值:\");scanf(\"%d\",&element);change_index(list,index,element);output(list);printf(\"输入要删除值的下标:\");scanf(\"%d\",&index);delate_index(list,index);output(list);printf(\"输入要插入值的下标:\");scanf(\"%d\",&index);printf(\"输入要插入的值:\");scanf(\"%d\",&element);insert_index(list,index,element);de_weight(list);printf(\"去重后的结果:\");output(list);sort(list);printf(\"顺序表排序后的结果:\");output(list);index=search_yuansu(list,14);printf(\"元素查找的下标:\");printf(\"%d\\n\",index);delate_yuansu(list,14);printf(\"按元素删除后的结果:\");output(list);change_yuansu(list,14,54);printf(\"按元素修改后的结果:\");output(list);free(list);list=NULL;return 0;}
软件下载大全