当前位置: 首页 > news >正文

免费家具网站模板大地资源影视免费观看

免费家具网站模板,大地资源影视免费观看,怎么创建网页,济南槐荫区做网站的文章目录 线性表顺序表1.1 顺序表结构的定义1.2 初始化顺序表1.3 检查顺序表空间1.4 打印1.5 尾插1.6 头插1.7 尾删1.8 头删1.9 查找1.10 指定位置插入1.11 删除指定位置数据1.12 销毁顺序表 数据结构(Data Structure)是计算机存储、组织数据的方式#xff0c;指相互之间存在一… 文章目录 线性表顺序表1.1 顺序表结构的定义1.2 初始化顺序表1.3 检查顺序表空间1.4 打印1.5 尾插1.6 头插1.7 尾删1.8 头删1.9 查找1.10 指定位置插入1.11 删除指定位置数据1.12 销毁顺序表 数据结构(Data Structure)是计算机存储、组织数据的方式指相互之间存在一种或多种特定关系的数据元素的集合。 线性表 线性表linear list是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构常见的线性表顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构连续也就说是连续的一条直线。但是在物理结构上并不一定是连续的线性表在物理上存储时通常以数组和链式结构的形式存储。 顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储。在数组上完成数据的增删改查。 顺序表一般可以分为 静态顺序表使用定长数组存储元素。动态顺序表使用动态开辟的数组存储。 静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了空间开多了浪费开少了不够用。所以现实中基本都是使用动态顺序表根据需要动态的分配空间大小。 所以下面我们实现动态顺序表 1.1 顺序表结构的定义 静态 #define N 10 typedef int SLDataType; typedef struct SeqList {int size;//有效数据的个数SLDataType arr[N];//指向开辟的数组 }SeqList;动态 //动态顺序表 typedef int SLDataType; typedef struct SeqList {int size;//已存储数据的个数int capacity; //容量SLDataType* arr;//指向动态开辟的数组 }SeqList;1.2 初始化顺序表 将顺序表中的元素全部置为0 void InitSeqList(SeqList* ps) {assert(ps);ps-arr NULL;ps-capacity 0;ps-size 0; }1.3 检查顺序表空间 如果满了进行扩容 若是第一次扩容直接开辟一定数量的空间若不是第一次则开辟当前空间的二倍注意realloc函数的使用要修改顺序表的容量 void CheckCapcity(SeqList* ps) {assert(ps);//存储的数据和容量相等了增加容量if (ps-capacity ps-size){//若起始容量为0则将容量设置为4否则二倍的形式错容int newCapacity ps-capacity 0 ? 4 : (2 * ps-capacity);SLDataType* tmp (SLDataType*)realloc(ps-arr, newCapacity * sizeof(SLDataType));if (tmp NULL){perror(CheckCapcity():realloc());return;}ps-arr tmp;ps-capacity newCapacity;} }1.4 打印 //打印 void SeqListPrint(SeqList* ps) {int i 0;for (i 0; i ps-size; i){printf(%d , ps-arr[i]);}printf(\n); }1.5 尾插 将数据存进arr中即可 //尾插 void SeqListPushBack(SeqList* ps, SLDataType x) {assert(ps);//先检查当前容量CheckCapcity(ps);//插入ps-arr[ps-size] x;ps-size; }1.6 头插 先检查容量旧数据往后挪一位0位置放新数据 //头插 void SeqListPushFront(SeqList* ps, SLDataType x) {assert(ps);//先检查容量CheckCapcity(ps);//旧数据往后挪for (int i ps-size; i 0; i--){ps-arr[i] ps-arr[i - 1];}ps-arr[0] x;ps-size; }1.7 尾删 数组得有数据直接将数组的个数减小 //尾删 void SeqListPopBack(SeqList* ps) {assert(ps);//得有数据assert(ps-size);//ps-arr[ps-size - 1] -1;ps-size--; }1.8 头删 后面的数据往前挪覆盖前面的个数减一 //头删 void SeqListPopFront(SeqList* ps) {assert(ps);assert(ps-size);int i 0;for (i 0; i ps-size - 1; i){ps-arr[i] ps-arr[i 1];}ps-size--; }1.9 查找 //查找 int SeqListFind(SeqList* ps, SLDataType x) {assert(ps);int i 0;for (i 0; i ps-size; i){if (ps-arr[i] x){return i;}}return -1; }1.10 指定位置插入 指定位置合理检查容量pos及之后数据往后挪 // 在pos位置插入x void SeqListInsert(SeqList* ps, int pos, SLDataType x) {assert(ps);//位置合理assert(pos 0 pos ps-size);CheckCapcity(ps);int i 0;//pos及之后的数据往后挪for (i ps-size; i pos; i--){ps-arr[i] ps-arr[i - 1];}ps-arr[pos] x;ps-size; }1.11 删除指定位置数据 将pos位置后的数据往前挪注意边界 // 删除pos位置的值 void SeqListErase(SeqList* ps, int pos) {assert(ps);assert(pos 0 pos ps-size);int i 0;for (i pos; i ps-size - 1; i){ps-arr[i] ps-arr[i 1]; //arr[size-2] arr[size - 1]}ps-size--; }1.12 销毁顺序表 将顺序表中为数组动态开辟的空间释放置空其它置为0 void SeqListDestory(SeqList* ps) {assert(ps);if (ps-arr){free(ps-arr);}ps-arr NULL;ps-size 0;ps-capacity 0; }顺序表就到这里啦~
http://www.dnsts.com.cn/news/140153.html

相关文章:

  • 二极管 东莞网站建设网站开发实训报告参考文献
  • 渭南企业网站建设中英文网站案例
  • 苏州高新区网站建设网站建设设计制作 熊掌号
  • 上海建设网站平台手机百度搜索
  • wordpress 百度站长网上竞价
  • 天津铁路建设投资控股(集团)网站建设ipv6网站
  • 网站服务空间品牌网站建设 意义
  • 企业网站建站济南网站建设设计制作公司
  • 西安做网站广告的公司网站设计建设制作
  • 深圳龙岗做网站的公司邯郸做网站的地方
  • 可以做问卷的网站网站建设需什么
  • 模板建站是什么意思新网域名搭建网站
  • 公司网站建设一般要多少钱东莞网站制作建设收费
  • 伊春网站制作上海有什么大公司
  • 做数据网站自助建站源码下载
  • 鬼佬做爰网站给企业做网站的公司有哪些
  • 北京网站的优化建设工程获奖查询网站
  • 做网站应该问客户什么需求网站设计书模板
  • 铜梁城乡建设网站介绍好的电影网站模板下载
  • 怎么看网站被降权网站采用哪种开发语言
  • 站长工具百度百科做网站的备案资料
  • 手机上做网站的软件网站原型设计和版式设计
  • 发布网站搭建教程wordpress 回复 慢
  • 网站建设和编辑实训报告重庆市建设工程信息网证书查询
  • 怎样建设简单的网站wordpress页面分析插件
  • 网站建设架构选型asp企业网站源码下载
  • 满城建设局官方网站重庆市建设工程信息网怎么查询不到安全管理证书
  • 做自行车车队网站的名字建设银行网站在哪设置查询密码
  • 做淘宝推广开网站合适上海营销咨询公司
  • 做电影网站会不会涉及版权问题app开发价格一览表