欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > 数据结构240808作业

数据结构240808作业

2024/10/24 7:29:17 来源:https://blog.csdn.net/m0_68379095/article/details/141034380  浏览:    关键词:数据结构240808作业

作业

自定义顺序表,实现顺序表按照位置插入和删除功能(上传到作业连接)。

mymain.c

#include<myhead.h>
#include "list.h"int main(int argc, const char *argv[])
{//申请堆区空间返回地址Plist L=apply_area();//调用申请空间函数//循环输入n个学生信息input_stu(L,4);//循环输出n个学生信息output_stu(L);//按照位置删除一个学生dele_pos(L);output_stu(L);//按照位置插入一个学生insert_pos(L);output_stu(L);free(L);L==NULL;return 0;
}

list.c

#include "list.h"Plist apply_area()
{Plist p=malloc(sizeof(List));//申请空间if(p==NULL){printf("malloc fail\n");return NULL;}p->len=0;//长度初始化为0memset(p->data,0,sizeof(p->data));//清空缓冲区return p;//返回地址给主函数
}
void input_stu(Plist L,int n)
{printf("请输入学生信息:\n");int i=0;for(i=0;i<n;i++){printf("请输入第%d个学生信息:\n",i+1);printf("请输入年龄:");scanf("%d",&L->data[i].age);printf("请输入姓名:");scanf("%s",L->data[i].name);printf("请输入成绩:");scanf("%d",&L->data[i].score);L->len++;//计数器+1}
}
void output_stu(Plist L)
{printf("学生信息如下:\n");printf("年龄\t姓名\t成绩\n");int i=0;for(i=0;i<L->len;i++){printf("%d\t%s\t%d\n",L->data[i].age,L->data[i].name,L->data[i].score);}
}
int empty(Plist L,int pos)
{if(NULL==L ||pos<1 || pos>L->len ||L->len==0){return 1;//返回真}return 0;//返回假
}
void dele_pos(Plist L)
{my_int pos=0;printf("请输入要删除的位置:");scanf("%d",&pos);int i=0,sub=-1;if(empty(L,pos)){printf("删除失败\n");}else{int i=0;for(i=pos-1;i<L->len;i++){L->data[i]=L->data[i+1];}L->len--;}
}
void insert_pos(Plist L)
{my_int pos=0;stu e={19,"张若仪",100};//要插入的学生信息printf("请输入要插入的位置:");scanf("%d",&pos);if(pos<1 || pos>L->len+1 || L->len==MAX || L==NULL){printf("插入失败\n");}else{int i=0;for(i=L->len-1;i>=pos-1;i--){L->data[i+1]=L->data[i];}L->data[pos-1]=e;//将张若仪插入到表中L->len++;}
}

list.h

#ifndef _LIST_H_
#define _LIST_H_#define MAX 30//宏定义最大存储容量
#include <myhead.h>
typedef int my_int;
typedef char STR[20];typedef struct
{my_int age;//年龄STR name;//姓名my_int score;//成绩
}stu;//学生信息结构体typedef struct
{stu data[MAX];//最大存储容量int len;//计数器,统计学生数量
}List,*Plist;
//定义结构体普通类型List和指针类型PlistPlist apply_area();
void input_stu(Plist L,int n);
void output_stu(Plist L);
void dele_pos(Plist L);
void insert_pos(Plist L);#endif

运行结果:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com