Day4 数据结构

目录

1、管理系统

1、头文件

 2、源文件

3、主函数

2、思维导图


1、管理系统

1、头文件

#ifndef _WORK_H_
#define _WORK_H_


typedef struct 
{
	char name[20];  //姓名
	char sex;   //性别
	int score;   //成绩
	int high;   //身高
}S, *SPtr;    //定义一个学生类型 作为一个数据元素

typedef struct 
{
	S data[50]; 
	int len;
}C , *CPtr;   // 定义了一个班级顺序表和一个顺序表指针


//创建顺序表
CPtr create();

//判满
int full(CPtr H);

//判空
int empty(CPtr H);

//输入函数1
int insert1(CPtr H,S n);

//输入函数
int insert(CPtr H,char name[20],char sex,int score,int high);

//输出顺序表内容
void show(CPtr H);

//查找函数
int search(CPtr H,int pos);

//删除函数
int del(CPtr H,int pos);

//更新函数
int updata(CPtr H,int pos,S e);

//释放顺序表
void cf(CPtr H);


#endif

 2、源文件

#include "work.h"
#include 
#include 
#include 

//创建顺序表
CPtr create()
{
	CPtr H=(CPtr)malloc(sizeof(C));
	if(NULL==H)
	{
		printf("创建失败\n");
		return NULL;
	}
	H->len=0;
	memset(H->data,0,sizeof(H->len));
	printf("创建成功\n");
	return H;
}

int full(CPtr H)
{
	if(NULL==H)
	{
		printf("表格不合法\n");
		return 0;
	}
	return H->len==50;
}

int empty(CPtr H)
{
	if(NULL==H)
	{
		printf("表格不合法\n");
		return 0;
	}
	return H->len==0;
}

int insert1(CPtr H,S n)
{
	if(NULL==H||full(H))
	{
		printf("添加学生失败\n");
		return 0;
	}
	H->data[H->len]=n;
	H->len++;
	printf("添加成功\n");
	return 1;
}


int insert(CPtr H,char name[20],char sex,int score,int high)
{
	if(NULL==H||full(H))
	{
		printf("添加学生失败\n");
		return 0;
	}
	strcpy(H->data[H->len].name,name);
	H->data[H->len].sex=sex;
	H->data[H->len].score=score;
	H->data[H->len].high=high;
	H->len++;
	printf("添加成功\n");
	return 1;
}

void show(CPtr H)
{
	if(NULL==H||empty(H))
	{
		printf("输出失败\n");
		return ;
	}
	printf("序号\t姓名\t性别\t成绩\t身高\t\n");
	for(int i=0;ilen;i++)
	{
		printf("%d\t%s\t%c\t%d\t%d\n",i,H->data[i].name,H->data[i].sex,H->data[i].score,H->data[i].high);
	}
	return ;
}

int search(CPtr H,int pos)
{
	if(NULL==H||empty(H))
	{
		printf("查找失败\n");
		return 0;
	}
	printf("序号\t姓名\t性别\t成绩\t身高\t\n");
	{
		printf("%d\t%s\t%c\t%d\t%d\n",pos,H->data[pos].name,H->data[pos].sex,H->data[pos].score,H->data[pos].high);
	}
	printf("查找结束\n");
	return 1;

}

int del(CPtr H,int pos)
{
	if(NULL==H||empty(H)||pos<1||pos>H->len)
	{
		printf("删除失败\n");
		return -1;
	}
	for(int i=pos-1;ilen-1;i++)
	{
		H->data[i]=H->data[i+1];
	}
	H->len--;
	printf("删除成功\n");
	return 1;
}

int updata(CPtr H,int pos,S e)
{
	if(NULL==H||empty(H))
	{
		printf("更新失败\n");
		return 0;
	}
	H->data[pos-1]=e;
	printf("更新成功\n");
	return 1;
}

void cf(CPtr H)
{
	if(NULL!=H)
	{
		free(H);
		H=NULL;
	}
	printf("释放成功\n");
	return;
}



3、主函数

#include "work.h"
#include 

int main()
{
	CPtr H=create();
	if(NULL==H)
	{
		return -1;
	}
	while(1)
	{
		system("clear");
		break;
	}
	S n = {"小胖",'M',90,180};
	insert1(H,n);
	insert(H,"小胖",'M',90,180);
	insert(H,"小米",'W',80,185);
	show(H);

	search(H,1);
	
	del(H,2);
	show(H);

	insert(H,"小陶",'M',88,178);
	printf("序号\t姓名\t性别\t成绩\t身高\t\n");
	for(int i=0;ilen;i++)
	{
		printf("%d\t%s\t%c\t%d\t%d\n",i,H->data[i].name,H->data[i].sex,H->data[i].score,H->data[i].high);
	}

	S e={"小胖",'W',95,180};
	updata(H,1,e);
	show(H);
	cf(H);



}

2、思维导图

Day4 数据结构_第1张图片

你可能感兴趣的:(数据结构,算法)