C/C++实现线性顺序表的示例代码

C/C++实现线性顺序表的示例代码

目录

线性顺序表简介

C语言实现代码

C++语言实现代码

线性顺序表简介

使用顺序存储结构的线性存储结构的表为线性顺序表,线性存储结构是元素逻辑结构一对一,顺序存储结构是元素物理结构连续,线性顺序表操作没有限制,线性顺序表优点是可以使用下标获取和修改元素,线性顺序表缺点是不可以直接插入和删除元素.

C语言实现代码 #include<stdio.h>//包含标准输入输出文件 #include<stdlib.h>//包含标准库文件 typedef struct//定义类型定义结构体 { int*Array,Length;//定义整数指针变量数组,定义整数变量长度 }Sequential_List;//定义顺序表 Sequential_List Sequential_List_Create(void)//顺序表创造 { return(Sequential_List){malloc(0)};//返回顺序表数组赋值为分配0字节返回值并且退出函数 } void Sequential_List_Destroy(Sequential_List*sequential_list/*定义顺序表指针变量顺序表*/)//顺序表销毁 { free(sequential_list->Array);//释放顺序表数组 } void Sequential_List_Insert(Sequential_List*sequential_list/*定义顺序表指针变量顺序表*/,int Insert_Index/*定义整数变量插入索引*/,int Insert_Element/*定义整数变量插入元素*/)//顺序表插入 { sequential_list->Array=realloc(sequential_list->Array,++sequential_list->Length*sizeof(int));//顺序表数组赋值为重新分配顺序表长度累加1乘整数字节返回值 for(int Index=sequential_list->Length;Index>Insert_Index;--Index)//定义整数变量索引赋值为顺序表长度,索引大于插入索引,索引累减1 sequential_list->Array[Index]=sequential_list->Array[Index-1];//顺序表数组第索引个元素赋值为顺序表数组第索引减1个元素 sequential_list->Array[Insert_Index]=Insert_Element;//顺序表数组第插入索引个元素赋值为插入元素 } void Sequential_List_Delete(Sequential_List*sequential_list/*定义顺序表指针变量顺序表*/,int Delete_Index/*定义整数变量删除索引*/)//顺序表删除 { --sequential_list->Length;//顺序表长度累减1 for(int Index=Delete_Index;Index<sequential_list->Length;++Index)//定义整数变量索引赋值为删除索引,索引小于顺序表长度,索引累加1 sequential_list->Array[Index]=sequential_list->Array[Index+1];//顺序表数组第索引个元素赋值为顺序表数组第索引加1个元素 } int Sequential_List_Obtain(Sequential_List sequential_list/*定义顺序表变量顺序表*/,int Obtain_Index/*定义整数变量获取索引*/)//顺序表获取 { return sequential_list.Array[Obtain_Index];//返回顺序表数组第获取索引个元素并且退出函数 } int Sequential_List_Obtain_Length(Sequential_List sequential_list/*定义顺序表变量顺序表*/)//顺序表获取长度 { return sequential_list.Length;//返回顺序表长度并且退出函数 } int main(void)//主函数 { Sequential_List sequential_list=Sequential_List_Create();//定义顺序表变量顺序表赋值为顺序表创造返回值 int Select,Element,Index;//定义整数变量选择,定义整数变量元素,定义整数变量索引 do{ scanf("%i",&Select);//格式扫描选择 if(Select==1)//选择等于1 { scanf("%i%i",&Index,&Element);//格式扫描索引和元素 Sequential_List_Insert(&sequential_list,Index,Element);//顺序表插入第索引个元素为元素 } else if(Select==2)//选择等于2 { scanf("%i",&Index);//格式扫描索引 Sequential_List_Delete(&sequential_list,Index);//顺序表删除第索引个元素 } else if(Select==3)//选择等于3 { scanf("%i",&Index);//格式扫描索引 printf("%i",Sequential_List_Obtain(sequential_list,Index));//格式打印顺序表获取第索引个元素返回值 } else if(Select==4)//选择等于4 printf("%i",Sequential_List_Obtain_Length(sequential_list));//格式打印顺序表获取长度返回值 }while(Select);//选择不等于0 Sequential_List_Destroy(&sequential_list);//顺序表销毁 } C++语言实现代码 #include<iostream>//包含输入输出流文件 template<typename Type/*类型*/>struct Sequential_List//定义模板结构体顺序表 { Type*Array=new Type;//定义类型指针变量数组赋值为新类型字节返回值 int Length=0;//定义整数变量长度赋值为0 ~Sequential_List(void)//顺序表析构 { delete Array;//删除数组 } void Insert(int Insert_Index/*定义整数变量插入索引*/,Type Insert_Element/*定义类型变量插入元素*/)//插入 { Type*temporary_Array=Array;//定义类型指针变量临时数组赋值为数组 Array=new Type[++Length];//数组赋值为新长度累加1乘类型字节返回值 for(int Index=0;Index<Length;++Index)//定义整数变量索引赋值为0,索引小于长度,索引累加1 Array[Index]=temporary_Array[Index];//数组第索引个元素赋值为临时数组第索引个元素 delete temporary_Array;//删除临时数组 for(int Index=Length-1;Index>Insert_Index;--Index)//定义整数变量索引赋值为长度减1,索引大于插入索引,索引累减1 Array[Index]=Array[Index-1];//数组第索引个元素赋值为数组第索引减1个元素 Array[Insert_Index]=Insert_Element;//数组第插入索引个元素赋值为插入元素 } void Delete(int Delete_Index/*定义整数变量删除索引*/)//删除 { --Length;//长度累减1 for(int Index=Delete_Index;Index<Length;++Index)//定义整数变量索引赋值为删除索引,索引小于长度,索引累加1 Array[Index]=Array[Index+1];//数组第索引个元素赋值为数组第索引加1个元素 } int Obtain(int Obtain_Index/*定义整数变量获取索引*/)//获取 { return Array[Obtain_Index];//返回数组第获取索引个元素并且退出函数 } int Obtain_Length(void)//获取长度 { return Length;//返回长度并且退出函数 } }; int main(void)//主函数 { Sequential_List<int>sequential_list;//定义顺序表整数变量顺序表 int Select,Element,Index;//定义整数变量选择,定义整数变量元素,定义整数变量索引 do{ std::cin>>Select;//标准输入选择 if(Select==1)//选择等于1 { std::cin>>Index>>Element;//标准输入索引和元素 sequential_list.Insert(Index,Element);//顺序表插入第索引个元素为元素 } else if(Select==2)//选择等于2 { std::cin>>Index;//标准输入索引 sequential_list.Delete(Index);//顺序表删除第索引个元素 } else if(Select==3)//选择等于3 { std::cin>>Index;//标准输入索引 std::cout<<sequential_list.Obtain(Index);//标准输出顺序表获取第索引个元素返回值 } else if(Select==4)//选择等于4 std::cout<<sequential_list.Obtain_Length();//标准输出顺序表获取长度返回值 }while(Select);//选择不等于0 }

到此这篇关于C/C++实现线性顺序表的示例代码的文章就介绍到这了,更多相关C++线性顺序表内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    区域语言设置|区域语言设置工具

    区域语言设置|区域语言设置工具,,区域语言设置工具你好,大致的方法如下,可以参考:1、按下键盘的windows 图标,再开始菜单中单击“设置”;出现的

    c4d语言设置|c4d汉语设置

    c4d语言设置|c4d汉语设置,,1. c4d汉语设置mac版的C4D是这样的,中文字体是有的,但是是以拼音的形式存在,比如黑体就是ht。中文字体以拼音方式

    电脑宣传语|电脑宣传语言

    电脑宣传语|电脑宣传语言,,1. 电脑宣传语言1.我做好了与你过一辈子的打算,也做好了你随时要走的准备,2.每段青春都会苍老,但我希望记忆里的你

    office语言设置|微软office语言设置

    office语言设置|微软office语言设置,,微软office语言设置一、首先点击桌面左下角“WIN键”。二、弹出选项内点击“所有程序”。三、接着点

    小米设置日语|小米设置日语语言

    小米设置日语|小米设置日语语言,,1. 小米设置日语语言MIUI系统文字目前只支持简体中文、繁体中文、英文、藏文和维吾尔文,不支持日文 2. 小