栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构线性表代码整合(c语言版)第2版---顺序表

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构线性表代码整合(c语言版)第2版---顺序表

顺序表:以数组的形式进行储存,用数组下标进行顺序表的一些基本操作

1 构造一个空顺序表(InitList(&L))

2 创建一个顺序表(CreaterList(&L,n))

 3 销毁一个顺序表(DestoryList(&L))

 4 重置一个顺序表(ClearList(&L))

5 判断顺序表是否为空(ListEmpty(L))

6 返回顺序表的个数(ListLength(L))

7 返回第i 个元素(GetElem(L,i,&e))

8 返回与e相同的第一个元素的位置(LocateElem(L,e))

9 在第i个数后插入一个数(ListInsert(&L,i,e))

10 删除第i 个数(ListDelete(&L,i))

11 修改第i个数( TurnList(L, i, e))

12 遍历顺序表(TraverseList(L))

顺序表中所使用到的包及其预定义。

#include
#include
#include
using namespace std;
typedef int status;//函数返回值类型 
#define OK 1    //预定义 
#define ERROR 0
#define OVERERROR -2 
#define MAXSIZE 1000
#define MAXSIZE2 10000

建立节点

typedef struct 
{
        int *elem;//储存空间的基地址 
		int length;	//当前长度 
} SqList;//顺序表的结构类型为SqList 

1 构造一个空顺序表(InitList(&L))

status InitList(SqList &L) //构造一个空的顺序表L 
{
	L.elem = new int[MAXSIZE];//为顺序表分配一个大小为MAXSIZE的数组空间; 
	if(!L.elem) exit(OVERERROR);//储存分配失败退出 
	L.length = 0;               //空间长度为0 
	return OK;
}

2 创建一个顺序表(CreaterList(&L,n))

	void CreatList(SqList &L,int n)//n 为要存入的个数
	{
		
		
		for(int i=0;i>L.elem[i];
			L.length++;
		}
	}

 3 销毁一个顺序表(DestoryList(&L))

status DestoryList(SqList &L)//销毁顺序表 
{
    free(L.elem);
    L.elem=NULL;
    L.length=0;
    return OK;
}

 4 重置一个顺序表(ClearList(&L))

status ClearList(SqList &L) //重置顺序表L 
{
	L.elem = new int[MAXSIZE2];//为顺序表重新分配一个大小为MAXSIZE2的数组空间; 
	if(!L.elem) exit(OVERERROR);//储存分配失败退出 
	L.length = 0;               //空间长度为0 
	return OK;
}

5 判断顺序表是否为空(ListEmpty(L))

status ListEmpty(SqList L)//不需要&符号,如果使用&,将会改变顺序表L
{
	if(L.length!=0)
	{
		return OK;
	}
	else
	{
		return ERROR;
	}
}

6 返回顺序表的个数(ListLength(L))

status ListLength(SqList L)//不需使用&
{
	return L.length; 
 } 

7 返回第i 个元素(GetElem(L,i,&e))

int GetElem(SqList L,int i,int &e)
{
	if(i>L.length)
	{
		return ERROR;
	}
	else
	{	
       return L.elem[i-1];
    }  
}	
	

8 返回与e相同的第一个元素的位置(LocateElem(L,e))

status LocateElem(SqList L,int e)
{
   int max = L.length - 1;
   for(int i = 0 ; i < L.length; i++)
   {
     if(L.elem[i] ==  e;
     retrun i;
   }
   
   if(max  ==  i)
   {
    return ERROR
   }
}

9 在第i个数后插入一个数(ListInsert(&L,i,e))

status ListInsert(SqList &L,int i,int e)//在第个数后插入一个数
 {
 	
	 if(i>=L.length)
     {
      return ERROR;
     }
     else
     {
     for(int j = L.length-1;j >=i ;j--)
       {
     	L.elem[j+1] = L.elem[j];
	   }
	  L.length++;
	  L.elem[i] = e;
	 }
	  return OK;
  } 

10 删除第i 个数(ListDelete(&L,i))

status ListDelete (SqList &L,int i)//删除第i个元素
 {
    
    if(i>L.length)
    {
    	return ERROR; 
	}
	else
	{
		for(int j = i-1;j < L.length;j++ ) 
	{
		L.elem[j] =L.elem[j+1];
		
	}
	L.length--;
//	delete L.elem[i];
	}
	
	return OK;
 } 
 

11 修改第i个数( TurnList(L, i, e))

status TurnList(SqList &L,int i,int e)//修改第n个元素
 {
	//cin>>e;
	L.elem[i-1] = e;
	return OK;
 } 

12 遍历顺序表(TraverseList(L))

statusTraveseList (SqList L)
	{

	    if (L.length == 0)
	    {
	        return 0;
	    }
	    for (int k = 0; k < L.length; k++)		//输出顺序表 
	    {
	    		cout< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854292.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号