数据结构—顺序表的实现

#include<stdio.h>
#include<iostream>
#define MAX_SIZE 100

using namespace std;

typedef int Elementtype;
typedef struct
{
	int date[MAX_SIZE];
	Elementtype x;
	int Length;
}List;


//初始化顺序表
 
void InitialList(List *L)
{
   //List L=new List;
   if(L==NULL)
   {
	   return;
   }
   L->Length=-1;
}

//求顺序表的长度
int Length_List(List *L)
{
	return L->Length+1;
}

//查找指定位置的元素
int Search(List *L,int x)
{
	if(L->Length<0||L->Length>MAX_SIZE)
	   return 0;
	return L->date[x-1];
}

//插入操作
bool InserList(List *L,int p,Elementtype x)
{
   if(L->Length>=MAX_SIZE-1)
	{
		printf("表满"); 
		return false;
    }
    if(p<1||p>L->Length+2) 
    {
    	printf("位置不合法"); 
		return false;
	}
   for(int i=L->Length;i>=p-1;i--)
   {
	   L->date[i+1]=L->date[i];
	} 
   L->date[p-1]=x;
   L->Length++;
   return true;
}

//删除操作
bool Delete_List(List *L,int p)
{
   if(L==NULL)
	   return false;
   for(int i=p-1;i<=L->Length;i++)
   {
	   L->date[i]=L->date[i+1];
   }
   L->Length--;
   return true;
}

//清空顺序表
bool Clear_List(List *L)
{
	L->Length=0;

	return true;
}

int ShowList(List *L)
{
  if(L==NULL)
	 {
	 	return 0;
	  } 
  for(int i=0;i<=L->Length;i++)
	 {
	 	cout<<L->date[i]<<"   "<<std::endl;
	  } 
  return 0;
}

int main()
{
	int b;
	List *LL=new List;
	//Ptr L;
	 
	InitialList(LL);
	ShowList(LL);
	InserList(LL,1,1);
	InserList(LL,2,2);
	InserList(LL,3,3);
	InserList(LL,4,4);
	ShowList(LL);
	b=Length_List(LL);
	cout<<"长度为"<<b<<std::endl;
	
	Delete_List(LL,3);
	ShowList(LL);
	return 0;
}

共同进步,永远向前!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用c++实现顺序表:多文件编程,层次清晰,函数有注释 SeqList();//构造函数,存储的元素个数设为0 bool setLength(size_t length);//设置已经存储的元素个数 bool addElement(ElemType element);//把某个元素添加到顺序表末尾 bool addElement(ElemType element , size_t n);//插入一个元素,使其成为第n个元素,其余元素后移 bool delElement();//删除所有的元素 bool delElement(size_t n);//删除第n个元素 bool delElement(string elementDetailType,string elementDetail);//通过某个元素细节找到元素,把这个元素删除 bool replaceElement(ElemType element , size_t n);//使用一个元素,替换掉第n个元素 bool swapElement(size_t n1 , size_t n2);//把第n1个元素和第n2个元素交换 ElemType* getElement();//得到数组头的指针 ElemType* getElement(size_t n);//得到第n个元素的指针 size_t getLength();//得到存储的元素个数 size_t getMaxSize();//得到顺序表容量 bool showElementDetail();//输出所有的元素细节 bool showElementDetail(size_t n);//输出第n个元素的细节 bool showElementDetail(string elementDetailType,string elementDetail);//通过某个元素细节找到元素,输出元素所有细节 size_t findElement(string elementDetailType,string elementDetail);//通过某个元素细节找到元素位置 static int inputAInt(int min = 0,int max = 9,int defaultValue = -1);//从键盘读取,限制为一个min到max间的整数,非法情况返回defaultValue void startControlLoop();//打开控制界面 ~SeqList();//析构函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值