• C++编程练习(1)----“实现简单的线性表的顺序存储结构“


    线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。

    故可以用数组来实现顺序存储结构。

    用C++编写的利用数组实现简单的读取、插入和删除功能的线性表。

    #include<iostream>
    #define MAXSIZE 20
    #define OK 1
    #define ERROR 0
    #define TURE 1
    #define FALSE 0
    typedef int Status;
    typedef int ElemType;
    class SqList{
    public:
    	SqList():length(1) {
    		for (int x=0;x<MAXSIZE;x++)
    			data[x]=0;
    	}
    	ElemType data[MAXSIZE];
    	int length;
    	Status ShowElem() const;
    	Status GetElem(int i, ElemType *e) ;
    	Status ListInsert(int i,ElemType e);
    	Status ListDelete(int i,ElemType *e);
    };
    Status SqList::ShowElem() const
    {
    	int k;
    	if (length==0)
    		return ERROR;
    	std::cout<<"当前线性表内容为:"<<std::endl;
    	for (k=1;k<=length;k++)
    		std::cout<<data[k-1]<<" 、 ";
    	std::cout<<std::endl;
    	return OK;
    }
    
    Status SqList::GetElem(int i,ElemType *e) 
    {
    	if (length==0 || i<1 || i>length)
    		return ERROR;
    	*e=data[i-1];
    	return OK;
    }
    
    Status SqList::ListInsert(int i,ElemType e) 
    {
    	int k;
    	if (length==MAXSIZE)
    		return ERROR;
    	if (i<1 || i>length)
    		return ERROR;
    	if (i<=length)
    	{
    		for (k=length-1;k>=i-1;k--)
    			data[k+1]=data[k];
    	}
    	data[i-1]=e;
    	length++;
    	return OK;
    }
    
    Status SqList::ListDelete(int i,ElemType *e)
    {
    	int k;
    	if (length==0)
    		return ERROR;
    	if (i<1 || i>length)
    		return ERROR;
    	*e=data[i-1];
    	if (i<length)
    	{
    		for (k=i-1;k<=length-1;k++)
    			data[k]=data[k+1];
    	}
    	length--;
    	return OK;
    }

    线性表顺序存储结构的优缺点:

    一、优点

    1、在存、读数据时,不管是哪个位置,时间复杂度都是O(1)。

    2、无须为表示表中元素之间的逻辑关系而增加额外的存储空间。

    二、缺点

    1、插入和删除时,需要移动大量元素,时间复杂度都是O(n)。

    2、当线性表长度变化较大时,难以确定存储空间的容量。

    3、造成存储空间的“碎片”。

  • 相关阅读:
    Android系统移植与驱动开发概述
    MySQL查看数据库安装路径
    GOOGLE HACK 语法
    django中orm多表查询,减少数据库查询操作
    javascript中json字符串对象转化
    centos7关闭图形界面启动系统
    centos 7下安装pycharm专业版
    centos 7 安装pip和pip3
    Centos7安装python3并与python2共存
    centos 7 安装mysql
  • 原文地址:https://www.cnblogs.com/fengty90/p/3768862.html
Copyright © 2020-2023  润新知