为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
学习任务

别摸我的键盘 的学生作业:

seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include #include #include #define MAX 5 struct student{ int name[20]; int id; int age; }; typedef struct student datatype_t; typedef struct{ datatype_t buf[MAX]; int n; }seqlist_t; extern seqlist_t *create_empty_seqlist(); extern int is_full_seqlist(seqlist_t *l); extern void insert_data_seqlist(seqlist_t *l, datatype_t data); extern void printf_data_seqlist(seqlist_t *l); extern int is_empty_seqlist(seqlist_t *l); extern int delete_data_seqlist(seqlist_t *l, datatype_t data); #endif seqlist.c #include "seqlist.h" /* * 创建空线性表 */ seqlist_t *create_empty_seqlist(){ seqlist_t *l = NULL; //分配内存 int size = sizeof(seqlist_t); l = (seqlist_t *)malloc(size); if(NULL == l){ printf("malloc error seqlist"); return NULL; } //初始化 memset(l,0, size); l -> n = 0; return l; } /* * 线性表是否存储满了 */ int is_full_seqlist(seqlist_t *l){ return l -> n == MAX ? 1 : 0; } /* * 线性表插入数据 */ void insert_data_seqlist(seqlist_t *l, datatype_t data){ l -> buf[l -> n] = data; l -> n++; } /* * * 输出线性表数据 */ void printf_data_seqlist(seqlist_t *l){ for(int i = 0; i < l->n; i++){ printf("%s\t%s\t%s\t\n", "NAME", "ID", "AGE"); printf("%s\t%d\t%d\t\n", l->buf[i].name, l->buf[i].id, l->buf[i].age); } } /* * 线性表是否为空 */ int is_empty_seqlist(seqlist_t *l){ return l -> n == 0 ? 1 : 0; } /* * 移除线性表数据 (移除线性表存在的,所有满足条件节点) * 此处以学生ID作为判断依据 */ int delete_data_seqlist(seqlist_t *l, datatype_t data){ if(NULL == l){ printf("seqlist delete element param is invaild\n"); return -2; } int i, j = 0; for(i = 0; i < l -> n; i ++){ if(l->buf[i].id != data.id){ l->buf[j] = l->buf[i]; j++; } } l->n = j; if(i == j){ printf("seqlist element not found\n"); return -1; } printf("seqlist delete element success!\n"); return 1; } main.c #include "seqlist.h" int main(int argc, const char *argv[]) { seqlist_t *l = create_empty_seqlist(); int i = 0; while(!is_full_seqlist(l)){ printf("请输入第%d个学生信息(姓名 id 年龄):", i+1); datatype_t data; scanf("%s%d%d", data.name, &(data.id), &(data.age)); insert_data_seqlist(l, data); i++; } printf_data_seqlist(l); datatype_t data; printf("请输入要删除学生的ID:"); scanf("%d", &(data.id)); delete_data_seqlist(l,data); printf_data_seqlist(l); free(l); l = NULL; return 0; } 执行结果 存在元素 linux@linux:~/test/5-1/seqlist$ ./a.out 请输入第1个学生信息(姓名 id 年龄):zs 1 18 请输入第2个学生信息(姓名 id 年龄):ls 2 19 请输入第3个学生信息(姓名 id 年龄):zs 1 19 请输入第4个学生信息(姓名 id 年龄):ww 3 20 请输入第5个学生信息(姓名 id 年龄):zs 1 18 NAME ID AGE zs 1 18 NAME ID AGE ls 2 19 NAME ID AGE zs 1 19 NAME ID AGE ww 3 20 NAME ID AGE zs 1 18 请输入要删除学生的ID:1 seqlist delete element success! NAME ID AGE ls 2 19 NAME ID AGE ww 3 20 元素不存在 linux@linux:~/test/5-1/seqlist$ ./a.out 请输入第1个学生信息(姓名 id 年龄):01 1 1 请输入第2个学生信息(姓名 id 年龄):02 2 2 NAME ID AGE 01 1 1 NAME ID AGE 02 2 2 请输入要删除学生的ID:3 seqlist element not found NAME ID AGE 01 1 1 NAME ID AGE 02 2 2

得分 100
学习任务

别摸我的键盘 的学生作业:

seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include #include #include #define MAX 2 struct student{ int name[20]; int id; int age; }; typedef struct student datatype_t; typedef struct{ datatype_t buf[MAX]; int n; }seqlist_t; extern seqlist_t *create_empty_seqlist(); extern int is_full_seqlist(seqlist_t *l); extern void insert_data_seqlist(seqlist_t *l, datatype_t data); extern void printf_data_seqlist(seqlist_t *l); #endif seqlist.c #include "seqlist.h" /* * 创建空线性表 */ seqlist_t *create_empty_seqlist(){ seqlist_t *l = NULL; //分配内存 int size = sizeof(seqlist_t); l = (seqlist_t *)malloc(size); if(NULL == l){ printf("malloc error seqlist"); return NULL; } //初始化 memset(l,0, size); l -> n = 0; return l; } /* * 线性表是否存储满了 */ int is_full_seqlist(seqlist_t *l){ return l -> n == MAX ? 1 : 0; } /* * 线性表插入数据 */ void insert_data_seqlist(seqlist_t *l, datatype_t data){ l -> buf[l -> n] = data; l -> n++; } /* * * 输出线性表数据 */ void printf_data_seqlist(seqlist_t *l){ for(int i = 0; i < l->n; i++){ printf("%s\t%s\t%s\t\n", "NAME", "ID", "AGE"); printf("%s\t%d\t%d\t\n", l->buf[i].name, l->buf[i].id, l->buf[i].age); } } main.c #include "seqlist.h" int main(int argc, const char *argv[]) { seqlist_t *l = create_empty_seqlist(); int i = 0; while(!is_full_seqlist(l)){ printf("请输入第%d个学生信息(姓名 id 年龄):", i+1); datatype_t data; scanf("%s%d%d", data.name, &(data.id), &(data.age)); insert_data_seqlist(l, data); i++; } printf_data_seqlist(l); free(l); l = NULL; return 0; } 代码执行 linux@linux:~/test/5-1/seqlist$ ./a.out 请输入第1个学生信息(姓名 id 年龄):zs 1000 18 请输入第2个学生信息(姓名 id 年龄):ls 1001 20 NAME ID AGE zs 1000 18 NAME ID AGE ls 1001 20

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号