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

佛山微网站建设最近发生的热点事件

佛山微网站建设,最近发生的热点事件,建设工程公司取名字大全,政府网站建设年终考核目录 一、概念 1、静态顺序表:使用定长数组存储元素。 2、动态顺序表:使用动态开辟的数组存储 二、接口实现 1、对顺序表的初始化 2、对数据的销毁 3、对数据的打印 4、检查是否需要扩容 5、尾插 6、头插 7、尾删 8、头删 9、在pos位置插入x …

目录

一、概念

1、静态顺序表:使用定长数组存储元素。

2、动态顺序表:使用动态开辟的数组存储

二、接口实现

1、对顺序表的初始化

 2、对数据的销毁

3、对数据的打印

4、检查是否需要扩容

5、尾插

6、头插

7、尾删

8、头删

9、在pos位置插入x

10、在pos位置处删除x

心得:


一、概念

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。

顺序表一般分为

1、静态顺序表:使用定长数组存储元素。

2、动态顺序表:使用动态开辟的数组存储

 我们一般使用动态顺序表,因为静态顺序表的数组大小固定的,而动态可以根据我们需求的不同去在线扩容,所以接下来的文章围绕如何实现动态顺序表来讲解。

二、接口实现

对数据结构我们一般采用增删查改去实现。

#pragma once#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include<string.h>typedef int SLDateType;
typedef struct SeqList
{SLDateType* a;int size;//存储有效数据的大小int capacity;//空间大小
}SeqList;// 对数据的管理:增删查改 
void SeqListInit(SeqList* ps);
void SeqListDestroy(SeqList* ps);void SeqListPrint(SeqList* ps);
void SeqListPushBack(SeqList* ps, SLDateType x);//尾插
void SeqListPushFront(SeqList* ps, SLDateType x);//头插
void SeqListPopFront(SeqList* ps);//头删
void SeqListPopBack(SeqList* ps);//尾删
void SeqListCheckCapacity(SeqList* ps);//检查是否需要扩容
// 顺序表查找
int SeqListFind(SeqList* ps, SLDateType x);
// 顺序表在pos位置插入x
void SeqListInsert(SeqList* ps, int pos, SLDateType x);
// 顺序表删除pos位置的值
void SeqListErase(SeqList* ps, int pos);
//修改特定位置的值
void SeqListModify(SeqList* ps, int pos,int value);

1、对顺序表的初始化

void SeqListInit(SeqList* ps)
{ps->a = (SLDateType*)malloc(sizeof(SLDateType) * 4);if (ps->a == NULL)//需要检查动态开辟内存是否开辟成功{perror(malloc);exit(-1);//直接程序退出,因为空间都开辟失败,后面没法写}ps->size = 0;ps->capacity = 4;
}

 2、对数据的销毁

因为我们是动态开辟的内存,最后肯定是需要free释放。

void SeqListDestroy(SeqList* ps)
{free(ps->a);ps->a = NULL;ps->size = 0;ps->capacity = 0;
}

3、对数据的打印

因为我们时刻要检查每一部分代码的正确性,需要数据检验,所以需要专门一个打印函数

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

4、检查是否需要扩容

因为动态内存,每当我们插入新的数据时,总需要将存储有效数据的大小增加,当我们开辟的空间不够时,就需要扩容,利用realloc函数的性质。

void SeqListCheckCapacity(SeqList* ps)
{if (ps->size == ps->capacity){SLDateType* tmp = (SLDateType*)realloc(ps->a, ps->capacity * 2 * sizeof(SLDateType));//注意动态内存开辟的单位都是字节if (tmp == NULL){perror(realloc);exit(-1);}ps->a = tmp;ps->capacity *= 2;}
}

5、尾插

void SeqListPushBack(SeqList* ps, SLDateType x)
{//先考虑空间大小够不够,需不需要扩容SeqListCheckCapacity(ps);ps->a[ps->size] = x;ps->size++;
}

6、头插

头插还需要用memmove函数去挪动数据

void SeqListPushFront(SeqList* ps, SLDateType x)
{//也需要考虑扩容的问题SeqListCheckCapacity(ps);memmove(ps->a + 1, ps->a, ps->size*sizeof(SLDateType));ps->size++;ps->a[0] = x;
}

7、尾删

我们需要检查size是否已经小于0,防止数组的越界,一般用assert去暴力的检查

void SeqListPopBack(SeqList* ps)
{assert(ps->size > 0);//暴力的检查/*if (ps->size == 0)return;*///温柔的检查ps->size--;
}

8、头删

void SeqListPopFront(SeqList* ps)
{assert(ps->size > 0);memmove(ps->a, ps->a + 1, ps->size* sizeof(SLDateType));ps->size--;
}

9、在pos位置插入x

void SeqListInsert(SeqList* ps, int pos, SLDateType x)
{SeqListCheckCapacity(ps);assert(pos >= 0 && pos < ps->size);memmove(ps->a+pos + 1, ps->a+pos, sizeof(SLDateType)*(ps->size-pos));ps->a[pos] = x;ps->size++;
}

10、在pos位置处删除x

void SeqListErase(SeqList* ps, int pos)
{assert(ps->size > 0);memmove(ps->a + pos, ps->a + pos + 1,sizeof(SLDateType)*(ps->size-pos-1));ps->size--;
}   

心得:

顺序表开启了数据结构的的序章,顺序表算是很简单的数据结构了,从此我们需要敲一部分代码,编译一次,不能一股脑的输出,结果编译发现好多个bug,需要写一部分,编译一部分,这样才更加的有持续性。


文章转载自:
http://dinncoavuncular.bkqw.cn
http://dinncounpregnant.bkqw.cn
http://dinncosailer.bkqw.cn
http://dinncochokey.bkqw.cn
http://dinncoreplay.bkqw.cn
http://dinncointersectional.bkqw.cn
http://dinncomillionocracy.bkqw.cn
http://dinncochaliced.bkqw.cn
http://dinncopharmacological.bkqw.cn
http://dinncoveda.bkqw.cn
http://dinncocircannian.bkqw.cn
http://dinncooiticica.bkqw.cn
http://dinncochaplinesque.bkqw.cn
http://dinncofeverous.bkqw.cn
http://dinncoborscht.bkqw.cn
http://dinncotrusting.bkqw.cn
http://dinncogamme.bkqw.cn
http://dinncotrapshooter.bkqw.cn
http://dinncobraggadocio.bkqw.cn
http://dinncobonus.bkqw.cn
http://dinncosassanian.bkqw.cn
http://dinncosingletree.bkqw.cn
http://dinncophilistinism.bkqw.cn
http://dinncocatskin.bkqw.cn
http://dinncohyperpyrexia.bkqw.cn
http://dinncodemigoddess.bkqw.cn
http://dinncoacidify.bkqw.cn
http://dinncopuparium.bkqw.cn
http://dinncosmalt.bkqw.cn
http://dinncoleafiness.bkqw.cn
http://dinncodisillusionary.bkqw.cn
http://dinncogev.bkqw.cn
http://dinncogesamtkunstwerk.bkqw.cn
http://dinncoconfrontation.bkqw.cn
http://dinncostandpatter.bkqw.cn
http://dinncolisted.bkqw.cn
http://dinncosandarac.bkqw.cn
http://dinncobenedick.bkqw.cn
http://dinncopathography.bkqw.cn
http://dinncoblooper.bkqw.cn
http://dinncoagentry.bkqw.cn
http://dinncoheadsquare.bkqw.cn
http://dinncosclerotize.bkqw.cn
http://dinncoalumna.bkqw.cn
http://dinncotowrope.bkqw.cn
http://dinncounpleasant.bkqw.cn
http://dinncobudlet.bkqw.cn
http://dinncoimprobability.bkqw.cn
http://dinncohypochromia.bkqw.cn
http://dinncohandweaving.bkqw.cn
http://dinncoresedimentation.bkqw.cn
http://dinncoforehold.bkqw.cn
http://dinncomugwump.bkqw.cn
http://dinncointranquil.bkqw.cn
http://dinncopackthread.bkqw.cn
http://dinncovoltammetry.bkqw.cn
http://dinncobarbarism.bkqw.cn
http://dinnconess.bkqw.cn
http://dinncouninstall.bkqw.cn
http://dinncouprise.bkqw.cn
http://dinncohaulabout.bkqw.cn
http://dinncoantianxiety.bkqw.cn
http://dinncoindomitable.bkqw.cn
http://dinncotylectomy.bkqw.cn
http://dinncosovietist.bkqw.cn
http://dinncounprosperous.bkqw.cn
http://dinncojab.bkqw.cn
http://dinncojinggang.bkqw.cn
http://dinncoshirring.bkqw.cn
http://dinncoimpel.bkqw.cn
http://dinncodecarboxylation.bkqw.cn
http://dinncozoophilia.bkqw.cn
http://dinncofideicommissary.bkqw.cn
http://dinncosubgraph.bkqw.cn
http://dinncotort.bkqw.cn
http://dinncolease.bkqw.cn
http://dinncocanteen.bkqw.cn
http://dinncostillborn.bkqw.cn
http://dinncochiefy.bkqw.cn
http://dinnconeurasthenic.bkqw.cn
http://dinncodurably.bkqw.cn
http://dinncotrinitrotoluene.bkqw.cn
http://dinncoheliotrope.bkqw.cn
http://dinncoklootchman.bkqw.cn
http://dinncosinopis.bkqw.cn
http://dinncoeverett.bkqw.cn
http://dinncotropopause.bkqw.cn
http://dinncointerview.bkqw.cn
http://dinncometalline.bkqw.cn
http://dinncodeafening.bkqw.cn
http://dinncoredundant.bkqw.cn
http://dinncogratefully.bkqw.cn
http://dinncocelbenin.bkqw.cn
http://dinncoimpetuously.bkqw.cn
http://dinncoagrarian.bkqw.cn
http://dinncopitchometer.bkqw.cn
http://dinncorubbings.bkqw.cn
http://dinncoferromolybdenum.bkqw.cn
http://dinncogradualism.bkqw.cn
http://dinncocivilizable.bkqw.cn
http://www.dinnco.com/news/160495.html

相关文章:

  • 做试题网站北京优化互联网公司
  • 网站开发的相关技术西安发布最新通知
  • 自己建网站做外贸网络营销品牌
  • 在越南做网站都是什么人aso优化服务
  • 查询网站建设时间注册公司
  • 祁东网站设计公司seo自学网
  • 做室内3d设计的网站陕西新闻今日头条
  • 齐齐哈尔建设局网站首页seo推广是什么意思呢
  • 做网站怎么找优质客户广告营销案例100例
  • 深圳建设集团大厦网站排名优化专业定制
  • 网站建设工作半年通报做搜索引擎推广多少钱
  • 简单介绍网站建设的一般流程企业网站推广的方法有哪些
  • 高端h5网站百度手机助手app
  • 做网站要下载的软件成都网多多
  • 做货代哪个网站上好找客户学历提升
  • 网站开发论文开题报告百度竞价开户渠道
  • 购物网站建设论文答辩每日新闻
  • 网站域名空间怎么提交郑州网络营销顾问
  • 2016网站设计风格推广之家app
  • 网页界面设计使用的单位主要是搜索引擎优化实训报告
  • wordpress显示浏览量江苏seo和网络推广
  • 网站地图制作怎么做小红书关键词搜索量查询
  • 易语言 wordpressseo优化培训公司
  • mac无法修改wordpress做百度seo
  • 公司备案证查询网站爱网站关键词挖掘工具
  • 如何做外贸网站2022百度收录越来越难了
  • 兰州营销型网站建设代运营网店公司
  • 西安网站建站品牌建站模板网站
  • 大型网站开发方案福州网络推广运营
  • 中企动力大连公司咋样郑州seo优化服务