2023.3.29第十次作业

2023.3.29第十次作业_第1张图片

代码

head.h

​
#ifndef __HEAD_H__
#define __HEAD_H__

#include
#include
#include

#define MAXSIZE 7
#define TYPEDATA int
typedef struct
{
	TYPEDATA data[MAXSIZE];
	int len;
}seqlist;

seqlist* create();
int insert_rear(seqlist *list,TYPEDATA e);
void output(seqlist *list);
int search_data(seqlist *list,TYPEDATA key);
int empty_seqlist(seqlist *list);
int full_seqlist(seqlist *list);
int delete_sub(seqlist *list,int sub);
void bubble(seqlist*list);

#endif

​

 test.c

#include"head1.h"
/*
 * function:    在堆区申请空间
 * @param [ in]  申请一个顺序表的空间
 * @param [out] 
 * @return      返回申请空间首地址
 */
seqlist* create()
{
	seqlist* p=(seqlist*)malloc(sizeof(seqlist));
	if(p==NULL)
		return NULL;
	p->len=0;
	return p;
}

/*
 * function:    尾插
 * @param [ in] 
 * @param [out] 
 * @return      
 */
int insert_rear(seqlist *list,TYPEDATA e)
{
	if(full_seqlist(list))
		return -1;
	list->data[list->len]=e;
	list->len++;
	return 0;
}

/*
 * function:    输出数据
 * @param [ in] 顺序表
 * @param [out] 
 * @return      无返回
 */
void output(seqlist *list)
{
	for(int i=0;ilen;i++)
	{
		printf("%d\t",list->data[i]);
	}
	printf("\n");
}

/*
 * function:    按元素查找
 * @param [ in] 顺序表、目标元素
 * @param [out] 
 * @return      如果没找到返回-1,找到返回元素下标
 */
int search_data(seqlist *list,TYPEDATA key)
{
	for(int i=0;ilen;i++)
	{
		if(list->data[i]==key)
		{
			return i;
		}
	}
	return -1;
}

/*
 * function:    判断顺序表是否为空
 * @param [ in] 顺序表
 * @param [out] 
 * @return      如果空返回-1,没空返回0
 */
int empty_seqlist(seqlist *list)
{
	return list->len==0?-1:0;
}

/*
 * function:    判断顺序表是否已满
 * @param [ in] 顺序表
 * @param [out] 
 * @return      如果已满返回-1,没满返回0
 */
int full_seqlist(seqlist *list)
{
	return list->len==MAXSIZE?-1:0;
}

/*
 * function:    按下标删除
 * @param [ in] 顺序表
 * @param [out] 
 * @return      成功返回0,失败返回-1
 */
int delete_sub(seqlist *list,int sub)
{
	if(empty_seqlist(list)||sub<0||sub>=list->len)
	{
		printf("删除失败\n");
		return -1;
	}
	for(int i=sub+1;ilen;i++)
	{
		list->data[i-1]=list->data[i];
	}
	list->len--;

	return 0;
}

/*
 * function:    排序
 * @param [ in] 
 * @param [out] 
 * @return      
 */
void bubble(seqlist*list)
{
	for(int i=1;ilen;i++)
	{
		for(int j=0;jlen-i;j++)
		{
			if(list->data[j]>list->data[j+1])
			{
				TYPEDATA temp=list->data[j];
				list->data[j]=list->data[j+1];
				list->data[j+1]=temp;
			}
		}
	}
}

main.c

#include"head1.h"
int main(int argc, const char *argv[])
{
	seqlist *list=create();
	int n;
	TYPEDATA e;
	printf("请输入数据个数");
	scanf("%d",&n);
	for(int i=0;i

结果

请输入数据个数5
请输入第1个数11
请输入第2个数22
请输入第3个数44
请输入第4个数55
请输入第5个数33
11	22	44	55	33	
请输入查找元素22
查找元素下标1
11	44	55	33	
11	33	44	55	

你可能感兴趣的:(c++,开发语言)