数据结构笔记之—— 顺序表实现

这篇博客主要探讨了数据结构中的顺序表概念,通过详细的解释和实例,加深了对顺序表的理解。作者从基础理论出发,逐步介绍了如何在控制台上实现顺序表,并利用typedef简化代码。
摘要由CSDN通过智能技术生成

学习数据结构了,写下来,加深记忆。

第一篇:


//system("cls");  控制台屏幕刷新
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define MAXSIZE 100
typedef int DataType;

typedef struct
{
	DataType data[MAXSIZE];
	int length;
}SeqList;
///初始化顺序表
SeqList SeqListInit( )/// OK
{
	SeqList L;
	//cout<<"线性表以创建"<<endl;
	L.length = 0;
	return L;
}
/// 销毁顺序表
SeqList ListClear(SeqList L)/// OK
{
	L.length=0;
	//cout<<"线性表已销毁"<<endl;
	return L;
}
///判断顺序表是否为空表
int ListEmpty(SeqList L)/// OK
{
	return (L.length==0);
}
///判断顺序表是否为满
int ListFull(SeqList L)/// OK
{
	return (L.length==MAXSIZE);
}

///求顺序表长度
int ListLength(SeqList L)/// OK
{
	return L.length;
}


///从顺序表中查找元素
bool ListGet(SeqList L ,int i,DataType &x)/// OK
{
	if(i<0||i>L.length)
    {
        printf("查询错误!\n");
        return false;//  超出表范围,错误,返回-1
    }
	x = L.data[i-1];//顺序表元素下标从0开始
	return true;
}

///从顺序表中查找与给定元素值相同的元素在顺序表中的位置
int ListLocate(SeqList L, DataType x)/// OK
{
	int i,mun = -1;
	for(i = 0;i<L.length;i++)
	{
		if(L.data[i]==x)
		{
			mun = i;
		}
	}
	if(mun==-1)
    {
        printf("当前顺序表没有元素 %d \n",x);
        return -1;
    }
    else
        return mun+1;
}
/// 向顺序表中插入元素
SeqList  ListInsert1(SeqList L,DataType x)/// OK
{
    if(L.length==MAXSIZE)
        printf("表满,错误\n");//  表满,返回错误
    L.length++;
    L.data[L.length-1] = x;
    return L;

}
///  插入元素 给定元素位置和值
SeqList  ListInsert(SeqList L,int i,DataType x)
{
    int j;
    i = i-1;
	if(L.length>MAXSIZE)
    {
        printf("表满,错误\n");//  表满,返回错误
        return L;
    }
	for(j = L.length-1;j>i;j--)
	{
		L.data[j] = L.data[j-1];
	}
	L.length++;
	L.data[i] = x;
	return L;
}

/// 从顺序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值