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

征求网站建设意见的通知如何设计网站的首页

征求网站建设意见的通知,如何设计网站的首页,简单个人网站开发,网站服务器租用恒创晓看天色暮看云,行也思君,坐也思君!我们一起来了解一下顺序表吧! 目录 顺序表是什么? 创建顺序表: 初始化顺序表: 顺序表增加容量和数据: 顺序表删除: 顺序表的查…

晓看天色暮看云,行也思君,坐也思君!我们一起来了解一下顺序表吧!

目录

顺序表是什么?

创建顺序表:

初始化顺序表:

顺序表增加容量和数据:

顺序表删除:

顺序表的查询:

顺序表的插入和删除指定位置:

顺序表打印:

顺序表销毁:

结语:


顺序表是什么?

顺序表使用一段存储单元依次存储数据元素的线性结构,分为静态顺序表和动态顺序表,静态顺序表的长度是固定的,而动态顺序表会随着你想要多大的空间进行开辟,不会造成空间不够用,抑或是空间浪费;

创建顺序表:

想必大家都知道结构体,它可以创建一个数组进行数据的增删查改,但是如果是数组的话,长度固定不方便,所以我们要定义一个顺序表指针,因为要扩容和个数,所以我们还要定义两个变量;因为我们是以整型数据,所以接下来用int。

typedef int SLDataType;
typedef struct SeqList
{SLDataType* arr;int size;//顺序表数据个数int capacity;//顺序表容量
}SL;

初始化顺序表:

一般我们将不是指针的置为0,将指针类型的置为空(NULL),因为我们传形参的是指针,所以访问结构体定义的变量时用" -> ",接下来我们创建一个函数进行初始化。

void SLInit(SL* ps)
{assert(ps);ps->a = NULL;ps->size = 0;ps->capacity = 0;
}

顺序表增加容量和数据:

为了能够方便代码的减少,所以我们单独创建一个函数来检查容量,如果容量不够,我们需要进行扩容,扩容也不是随便扩,防止扩容太多,差不多2倍就好了。

void SLCheckCapacity(SL* ps)
{if (ps->size == ps->capacity)//个数已满{SLDataType* newcapacity = (SLDataType*)realloc(ps->a, sizeof(SLDataType) * ps->capacity * 2);if (newcapacity == NULL)//扩容失败{perror("realloc fail");return;}ps->capacity *= 2;}
}

头插:

当我们要插入表头数据,我们需将后面的数据依次往后移,插入数据,如图所示:

void SLPushFront(SL* ps, SLDataType x)
{assert(ps);SLCheckCapacity(ps);int i = 0;for (i = ps->size; i > 0; i--){ps->arr[i] = ps->arr[i - 1];}ps->arr[0] = x;//头个数据置为x;ps->size++;//增加一个总个数
}

尾插:

尾插我们只需将最后一个数置为传入的数据,再将总个数加一。

void SLPushBack(SL* ps, SLDataType x)
{assert(ps);SLCheckCapacity(ps);//检查容量ps->arr[ps->size++] = x;
}

顺序表删除:

头删:

我们通过循环用后面的值将前面的值覆盖即可,并将总个数减一。

void SLPopFront(SL* ps)
{assert(ps);assert(ps->size > 0);//防止顺序表没有数据int i = 0;for (i = ps->size - 1; i > 0; i--){ps->arr[i - 1] = ps->arr[i];}ps->size--;//减少一个总个数
}

尾删:

尾删非常简单,只需要将总个数减一,就能尾删成功了哦!

void SLPopBack(SL* ps)
{assert(ps->size > 0);//防止顺序表为空ps->size--;
}

顺序表的查询:

我们只需使用循环,进行数据的遍历,就能够找到我们想要的数据了。

int SLFindData(SL* ps, SLDataType x)
{assert(ps);int i = 0;for (int i = 0; i < ps->size; i++){if (ps->arr[i] == x)//判断是否是我们要找的数据return x;elsereturn -1;}
}

顺序表的插入和删除指定位置:

我们可知先往后移,再插入,如果先插入,再后移会导致数据被覆盖,从而数据缺失!

void SLInsert(SL* ps, int pos, SLDataType 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, int pos)
{assert(ps);assert(pos >= 0 && pos < ps->size);//检查指定位置是否超出for (int i = pos + 1; i < ps->size; i++){ps->arr[i - 1] = ps->arr[i];}ps->size--;//总个数减一
}

顺序表打印:

这个我们直接进行循环遍历打印就行了

void SLPrint(SL* ps)
{int i = 0;for (i = 0; i < ps->size; i++){printf("%d ", ps->a[i]);}
}

顺序表销毁:

为了防止内存泄漏,我们需要释放掉我们使用的空间,然后置空。

void SLDestroy(SL* ps)
{assert(ps);free(ps->arr);//释放空间ps->arr = NULL;ps->size = 0;ps->capacity = 0;
}

结语:

聊赠一枝春,谢谢观看,bye~

http://www.dtcms.com/wzjs/229811.html

相关文章:

  • 如何做网站背景企业网络推广技巧
  • dw做框架网站推广网站的方法有哪些
  • 宝安网站优化新闻热搜榜 今日热点
  • 企业的网站一般做哪些维护推广网址
  • 武汉网站优化seo百度合伙人官方网站
  • 上海专业做网站电话永久免费个人网站注册
  • 凡科免费网站可以做推广吗产品如何在网上推广
  • 镇平微网站建设公司宣传网站制作
  • 男女直接做视频网站app推广代理加盟
  • 合肥做网站便宜mdyun自助建站
  • 这几年做哪个网站致富百度推广怎么做
  • 广州网页设计网站网址怎么申请注册
  • 网站建设深游戏推广赚佣金
  • 在智联招聘网站做销售女生做sem还是seo
  • 学校网站建设网站电商怎么做营销推广
  • 酒仙网网站推广方式百度seo关键词优化工具
  • 淮安网站优化营销软文小短文
  • 万源网站建设简单网页制作成品免费
  • 西安烽盈网站建设推广武汉好的seo优化网
  • 能用网站做微信小程序网站统计数据分析
  • 武汉网站制作公司电话友情链接分析
  • 四川建设人才网官网证书查询济南seo怎么优化
  • 南京平面设计培训seo外链发布技巧
  • 行业推广做哪个网站好无锡哪里有做网站的
  • 制作网页时用的最多的图像文件上海排名优化seo
  • 电子商务网站seo最新网络推广平台
  • 武汉做网站哪家公司seo算法入门教程
  • 有可以做推广的网站吗今日新闻内容摘抄
  • 网站被k怎么办中国万网登录入口
  • 订做网站策划站长推荐黄色