数据结构--顺序表实现数据处理系统(C语言)

本文详细介绍了如何使用C语言构建和操作顺序表,涵盖了数据结构基础,顺序表的创建、插入、删除等操作,以及在数据处理系统中的应用。通过对顺序表的深入理解,提升对数据结构和算法的实际运用能力。
摘要由CSDN通过智能技术生成
#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 10 
#define OK 1
#define ERROR 0
#define true 1 



typedef int Status;
typedef int DataType; 

typedef struct {
	DataType *Element;
	int Length;
}List; 


//
Status InitList(List *L)  ;  //顺序表初始化 

Status DestoryList(List *L);  //销毁顺序表 

Status InputList(List *L); //输入顺序表 

Status Find_Position(List *L); //查找(2), 按位置查找 
Status Find_Value(List *L) ;//查找(1), 按值查找 

Status TraverList(List *L); //遍历顺序表 

Status Delete_Value(List *L) ;//按值删除  
Status Delete_Position(List *L);//按位置删除 
Status Reverse_List(List *L); //顺序表逆置  
Status Revise_Position(List *L); //按位置修改 
Status Revise_Value(List *L); //按值修改   
//




 
Status InitList(List *L)//顺序表初始化 
{
	List *p=L;
	
	
		p->Element=(DataType*)malloc(sizeof(MAXSIZE));
	//	printf("\n1\n");
		//if(!p->Element)
		//exit(OVERFLOW);
	//	printf("\n2\n");
		p->Length=-1;
	//	printf("\n3\n");
	
		return OK;
	
} 



Status DestoryList(List *L)  //销毁顺序表 
{
	
	if(L->Element==NULL||L==NULL)
	{
		printf("\n顺序表已经为空!\n");
		return ERROR;
	} 

	else
	{
		printf("\n\n");

		free(L->Element);
		//printf("\n释放L->Element\n");

		L->Element=NULL;
		//printf("\nL->Element==NULL\n");
		L=NULL; 
		//printf("\nL==NULL\n");
		
		//printf("释放成功!\n"); 
		return OK;
	}
		
}



Status InputList(List *L)//输入顺序表 
{
	printf("\n请元素个数\n");
	int n; 
	scanf("%d", &n);
	
	printf("\n输入元素的值:\n");
	for(int i=0; i<n; i++)
	{
		scanf("%d", &L->Element[i]);
		L->Length++;
	} 
	
	printf("\n输出此顺序表!\n");
	
	int s= TraverList(L);
	 
	return OK;
}



Status TraverList(List *L) //遍历顺序表 
{
//	printf("\n输出此顺   序表!\n");
	//if(L!=NULL)
	if(L->Length==-1)
	{
		printf("\n当前顺序为空表\n");
		return ERROR;
	}
	
//printf("\n\n输出此顺序表!\n");
	for(int i=0; i<=L->Length; i++)
		printf("%d ", L->Element[i]);
	
	
	return OK; 
} 


Status Find_Value(List *L) //查找(1), 按值查找 
{
	int e=0, flag=0, x=0;
	printf("\n当前顺序表为:\n");
	int s= TraverList(L); 
	printf("\n请输入要查的数值:\n");
	scanf("%d", &e);
	
	for(int i=0; i<=L->Length; i++)
		if(e==L->Element[i])
		{
			printf("L->Element[i]==%d:\n", L->Element[i]);
			printf("L->Length===%d:\n", L->Length);
			x=i;
			flag=1;
		} 
		
	if(flag==0)
	{
		printf("\n输入的数据不再顺序表中
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值