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

做网站说什么5.0啥意思网络技术培训机构

做网站说什么5.0啥意思,网络技术培训机构,优惠建设网站,跨境电商无货源怎么做数据结构——顺序表的实现 一 关于顺序表的简单知识二 动态顺序表 一 关于顺序表的简单知识 1.顺序表的底层结构是数组,在数组的基础上增加了增,删,查,改等方法。 2.顺序表的分类:静态顺序表和动态顺序表 静态顺序表的…

数据结构——顺序表的实现

  • 一 关于顺序表的简单知识
  • 二 动态顺序表

一 关于顺序表的简单知识

1.顺序表的底层结构是数组,在数组的基础上增加了增,删,查,改等方法。
2.顺序表的分类:静态顺序表和动态顺序表
静态顺序表的缺陷:给小了,空间不够;给大了,造成空间浪费。
动态顺序表:可以实现动态增容(成倍数的增加,一般成二倍的形式增加)
3.顺序表是线性表的一种,在物理结构和逻辑结构上都是线性的。

二 动态顺序表

由于静态顺序表的不灵活性,所以一般使用动态顺序表,接下来,我主要给大家讲解动态顺序表。
但是,在此之前,我还是把静态顺序表给大家讲清楚。

#define N 100;//添加宏定义,可以更容易的更改底层数组大小
struct SeqList
{int arr[N];//静态顺序表底层结构是一个固定大小的数组,由此造成了它的不灵活性int size;//有效数据长度}

接下来,就是动态顺序表了。

动态顺序表的头文件

#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#include<assert.h>
//定义顺序表
typedef int SLDateList;
typedef struct SeqList
{SLDateList* arr;//由于动态顺序表不知道数组的大小,所以使用指针。int size;int capacity;}SL;//初始化
void SLInit(SL* ps);//销毁
void SLDestory(SL* ps);//尾插
void SLPushBack(SL* ps, SLDateList x);
//头插
void SLPushFront(SL* ps, SLDateList x);
//尾删
void SLPopBack(SL* ps);
//头删
void SLPopFront(SL* ps);
//打印
void SLPrint(SL ps);
//查找
int SLFind(SL* ps, SLDateList x);
//在指定位置插入数据
void SLInit(SL* ps, SLDateList pos, SLDateList x);
//在指定位置删除数据
void SLErase(SL* ps, SLDateList pos);

动态顺序表的源文件

#include"SE.h"void SLInit(SL * ps)
{ps->arr = NULL;ps-> size = ps-> capacity = 0;}
//头插,尾插都要判断顺序表是否为空
void SLCheckCapacity(SL* ps)
{if (ps->capacity == ps->size){int newcapacity = ps->capacity == 0 ? 4 : ps->capacity * 2;//注意是相等,不是赋值SLDateList* tmp = (SLDateList*)realloc(ps->arr, newcapacity * sizeof(SLDateList));if (tmp == NULL){perror("realloc file!");exit(1);}ps->arr = tmp;ps->capacity = newcapacity;}
}void SLPushBack(SL* ps, SLDateList x)
{assert(ps);//顺序表不能传空SLCheckCapacity(ps);ps->arr[ps->size++] = x;}void SLPushFront(SL* ps, SLDateList x)
{assert(ps);SLCheckCapacity(ps);for (int i = ps->size; i > 0; i--){ps->arr[i] = ps->arr[i-1];}ps->arr[0] = x;ps->size++;}void SLPopBack(SL* ps)
{assert(ps);assert(ps->size);--ps->size;
}void SLPopFront(SL* ps)
{assert(ps);assert(ps->size);for (int i = ps->size; i<ps->size-1; i--){ps->arr[i] = ps->arr[i + 1];}ps->size--;}void SLPrint(SL ps)
{for (int i = 0; i < ps.size; i++){printf("%d",ps.arr[i]);}printf("\n");
}int SLFind(SL* ps, SLDateList x)
{assert(ps);for (int i = 0; i < ps->size; i++){if (ps->arr[i] == x){return i;}elsereturn -1;}
}
void SLInit(SL* ps, SLDateList pos, SLDateList x)
{assert(ps);assert(pos>=0 && pos<=ps->size);SLCheckCapacity(ps);for (int i = ps->size; i > pos; i--){ps->arr[i] = ps->arr[i - 1];}ps->arr[pos] = x;ps->size++;}
void SLErase(SL* ps, SLDateList pos)
{assert(ps);assert(pos >= 0 && pos < ps->size);SLCheckCapacity(ps);for (int i = pos ; i<ps->size-1; i++){ps->arr[i - 1] = ps->arr[i];//size-2 = size-1}ps->size--;
}void SLDestory(SL* ps)
{if (ps->arr)//销毁谁,销毁的是已经申请过空间的数组{free(ps->arr);}ps->arr = NULL;ps->size = ps->capacity = 0;}
http://www.yayakq.cn/news/891949/

相关文章:

  • 温州建设网站公司重庆建设工程施工安全管理平台
  • 360安全网站怎么做号码认证dw做的网站要多大
  • 制作制作网站开发网站建设公制度
  • 企业网站开发服务器科技设计网站有哪些内容
  • 地方性资讯门户网站一般公司常用的邮箱
  • 同城同镇网站建设网站免费建站
  • 成都商城网站建设牧风的在wordpress
  • 山东手机网站建设电话网站作品欣赏
  • 国内外知名建设设计网站怎么做网站跟域名
  • 网站建设新闻发布注意事项深圳短视频制作公司
  • 上杭县铁路建设办公室网站网站流量作用
  • 织梦网站模板使用教程网站建设报价浩森宇特
  • 公司内部网站一般都怎么维护wordpress清除插件
  • 文明网站建设管理培训心得建设工程公司名字大全三个字
  • 建设网站对服务器有什么要求吗餐饮品牌设计哪个公司最好
  • 网站怎么做防御贵州建设职业技术学院网站查成绩查询
  • 网站怎么自己编辑模块2024中核招聘网最新招聘公告
  • 做网站什么需要好国外室内设计网站排名
  • linux 如何做网站公司官网运营
  • 俄语在线网站制作广告竞价
  • 重庆食品商城网站设计软件开发工具平台
  • 冒用他人公司做网站南通网站建设
  • 南昌的网站推广公司wordpress的php版本
  • 临海建设局官方网站网站建设与运营及营销服务
  • 深圳模板网站多少钱外贸网上推广
  • 公司英文网站建设wordpress主题开发难么
  • 优惠券怎么做自己的网站wordpress selva
  • 宝安区做外贸网站的公司免费行情软件网站下载大全
  • 浙江省建设门户网站佛山cms模板建站
  • 下沙建设局网站wordpress首页生成静态