- seqList.h
- seqList.c
- main.c
- result
#ifndef __SEQLIST__H
#define __SEQLIST__H
#define MAX 20
typedef int datatype;
typedef struct
{
datatype data[MAX]; //存储顺序表数组
int len; //表示顺序表长度
}seqList;
//创建顺序表
seqList* listCreate();
//判空,空返回1
int listEmpty(seqList *s);
//判满,满返回1
int listFull(seqList *s);
//添加一个数据
//按照位置进行查找,成功后返回查找到的数据元素
datatype listSearchPos(seqList *s, int pos);
//按照值进行修改
int listUpdateValue(seqList *s, datatype old_e, datatype new_e);
//选择排序
void listRank(seqList *s);
#endif
seqList.c
#include"seqList.h" #includemain.c#include #include //创建顺序表 seqList* listCreate() { seqList *S = (seqList*)malloc(sizeof(seqList)); if(NULL==S) { printf("创建失败n"); return NULL; } memset(S->data,0,sizeof(S->data)); S->len=0; printf("创建成功n"); return S; } //判空 int listEmpty(seqList *S) { if(NULL==S) { printf("所给顺序表不合法n"); exit(0); } return S->len==0? 1 : 0;//0表示非空,1表示空 } //按照值进行修改数组数据 int listUpdateValue(seqList *s, datatype old_e, datatype new_e) { for(int i=0;i len;i++) { if(old_e==s->data[i]) { s->data[i]=new_e; printf("修改成功"); return 1; } } printf("修改失败"); return 0; } //按照位置进行查找,成功后返回查找到的数据元素 datatype listSearchPos(seqList *s, int pos) { if( pos<0 || pos>s->len-1 || listEmpty(s))//逻辑判断 { printf("查找失败n"); return NULL; } printf("按位置查找成功n"); return s->data[pos];//返回数据 } //选择排序 降序 void listRank(seqList *s) { for(int i=0;i len-1;i++) { int index=i; for(int j=i+1;j len;j++) { if(s->data[index] data[j]) { index=j; } } if(index!=i) { int tem=s->data[index]; s->data[index]=s->data[i]; s->data[i]=tem; } } } //添加一个数据 int listAdd(seqList *S, datatype e) { if(listFull(S)) { printf("表满,添加失败n"); return -1; } //添加逻辑 S->data[S->len] = e; S->len ++; printf("添加成功n"); return 0; }
#include"seqList.h" #includeresult#include int main(int argc, const char *argv[]) { seqList *S = listCreate(); if(NULL==S) { return -1; } //调用添加函数 listAdd(S,7);` listAdd(S,5); listAdd(S,5); listAdd(S,5); listAdd(S,8); listAdd(S,9); listAdd(S,0); listshow(S); printf("按位置查找测试n"); printf("%dn",listSearchPos(S,6)); printf("按照值进行修改n"); listUpdateValue(S,8,6); listshow(S); printf("选择排序降序测试n"); listRank(S); listshow(S); return 0; }
ubuntu@ubuntu:01_day$ ./a.out
创建成功
添加成功
添加成功
添加成功
添加成功
添加成功
添加成功
添加成功
输出数组内容为:
7 5 5 5 8 9 0
按位置查找测试
按位置查找成功
0
按照值进行修改
修改成功输出数组内容为:
7 5 5 5 6 9 0
选择排序降序测试输出数组内容为:
9 7 6 5 5 5 0



