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

强的网站建设公seo云优化

强的网站建设公,seo云优化,wordpress开发解析,如何建设手机版网站前言:在上一篇文章中,我们已经对数据结构有了一定了解,我们可以通过优化空间复杂度或者时间复杂度从而提高我们程序运行或存储速率。至此我们就知道了数据结构的重要性,所以今天我们将要了解和学习一种实用的数据结构——线性表。…

前言:

在上一篇文章中,我们已经对数据结构有了一定了解,我们可以通过优化空间复杂度或者时间复杂度从而提高我们程序运行或存储速率。至此我们就知道了数据结构的重要性,所以今天我们将要了解和学习一种实用的数据结构——线性表

一、线性表概述:

线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列,是最基本、最简单也最常用的一种数据结构。

线性表中的数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其他数据元素都是首尾相连的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是线性表,但存储层次上属于链式存储,是把最后一个数据元素的尾指针指向了首位节点)

线性表在逻辑上是线性结构,但是在物理结构并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 常见的线性表:顺序表、链表、栈、队列、字符串等等

二、顺序表:

了解完线性表后,就要进入我们今天的主题,我们今天最主要学的的是线性表中的顺序表。

  1. 概念和结构:

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,并在数组上完成数据的增删查改。其本质就是数组,但与数组不同的是:顺序表在其数组本质的基础上,还要求数据连续存储,不能跳跃或间隔存储。

顺序表一般可分为两类:

静态顺序表:使用一定长度的数组存储元素。但是静态顺序表存在很明显的缺陷,即大小固定,数据少了就会造成空间浪费,数据多了空间不够导致不能存储。

#define N 10
typedef int SLDataType;
typedef struct SeqList
{SLDataType arr[N];int size;
}SeqList;

动态顺序表:使用动态开辟的数组存储元素。动态顺序表很好弥补了静态顺序表的弊端,使空间申请变得灵活,我们可根据情况进行扩容操作从而申请到合适大小的空间。

typedef int SLDataType;
typedef struct SeqList
{SLDataType* a;int size;inte capacity;
}SeqList;

2、顺序表的实现:

现在开始,我们开始实现顺序:

①初始化顺序表:

void SeqListInit(SeqList* ps)
{assert(ps);//防止传入空指针;ps->a = malloc(sizeof(SLDateType) * INIT_CAPACITY);if (ps->a == NULL){perror("malloc fail");}ps->size = 0;ps->capacity = INIT_CAPACITY;}

②销毁顺序表:

void SeqListDestroy(SeqList* ps)
{assert(ps);//防止传入空指针;free(ps->a);ps->a = NULL;ps->capacity = ps->size=0;
}

③顺序表尾插:

尾插即在最后一个元素下一个位置上插入元素,也就是size的位置上,插入之后,总数据+1也就是size++。

void SeqListPushBack(SeqList* ps, SLDateType x)
{assert(ps);//检查是否需要扩容if (ps->size == ps->capacity){SLDateType* tmp = (SLDateType)realloc(ps->a, sizeof(SLDateType) * ps->capacity + 5);if (tmp == NULL){perror("realloc fail");return;}ps->a = tmp;ps->capacity += 5;}ps->a[ps->size++] = x;
}

④顺序表尾删:

尾删就是把最后一个元素删除,所以size不能为0,删除之后总数据减一,size--。

void SeqListPopBack(SeqList* ps)
{assert(ps);assert(ps->size > 0);ps->size--;}

⑤顺序表头插:

头插也就是在第一个元素前面插入第一个元素,因为我们使用数组实现的顺序表所以头插需要挪动元素。

插入之后,总数据+1也就是size++。

void SeqListPushFront(SeqList* ps, SLDateType x)
{assert(ps);if (ps->size == ps->capacity){SLDateType* tmp = (SLDateType)realloc(ps->a, sizeof(SLDateType) * ps->capacity + 5);if (tmp == NULL){perror("realloc fail");return;}ps->a = tmp;ps->capacity += 5;}for (int i = ps->size; i > 0; i--){ps->a[i] = ps->a[i - 1];}ps->a[0] = x;ps->size++;}

⑥顺序表的头删除:

与头插类似,同样需要挪动元素,只不过挪动方向变了,头插是往后挪,头删是往前挪,删除之后总数据减一,size--。

void SeqListPopFront(SeqList* ps)
{assert(ps);int count = 1;for (count = 1; count <= ps->size; count++){ps->a[count - 1] = ps->a[count];}ps->size--;
}

⑦打印顺序表:

void SeqListPrint(SeqList* ps)
{if (ps->size == 0){printf("顺序表为空");return;}for (int i = 0; i < ps->size; i++){printf("%d ", ps->a[i]);}printf("\n");
}

⑧顺序表中查找:

int SeqListFind(SeqList* ps, SLDateType x)
{assert(ps);for (int i = 0; i < ps->size; i++){if (ps->a[i] == x){return i;}return -1;}
}

⑨在指定下标插入:

插入之后,总数据+1也就是size++。

void SeqListInsert(SeqList* ps, int pos, SLDateType x)
{assert(ps);assert(pos >= 0 && pos <= ps->size);if (ps->size == ps->capacity){SLDateType* tmp = (SLDateType)realloc(ps->a, sizeof(SLDateType) * ps->capacity + 5);if (tmp == NULL){perror("realloc fail");return;}ps->a = tmp;ps->capacity += 5;}for (int i = ps->size; i > pos;i--){ps->a[i] = ps->a[i - 1];}ps->a[pos] = x;ps->size++;
}

⑩删除指定下标位置元素:

删除之后总数据减一,size--。

void SeqListErase(SeqList* ps, int pos)
{assert(ps);assert(pos >= 0 && pos <= ps->size);for (int i = pos; i < ps->size-1; i++){ps->a[i] = ps->a[i + 1];}ps->size--;}

总结:

顺序表相对来说比较简单,很重要一点就是在执行操作时,要思考是否要进行断言操作,避免使用空指针。文章到此就结束啦。


文章转载自:
http://pyrolatry.c7627.cn
http://agassiz.c7627.cn
http://serriform.c7627.cn
http://away.c7627.cn
http://delawarean.c7627.cn
http://linden.c7627.cn
http://lohengrin.c7627.cn
http://dominance.c7627.cn
http://misbirth.c7627.cn
http://ratteen.c7627.cn
http://lovingkindness.c7627.cn
http://descriptively.c7627.cn
http://mandamus.c7627.cn
http://away.c7627.cn
http://emissivity.c7627.cn
http://sportsbag.c7627.cn
http://quotation.c7627.cn
http://mephitical.c7627.cn
http://faux.c7627.cn
http://celebrated.c7627.cn
http://fairyism.c7627.cn
http://unauthoritative.c7627.cn
http://microevolution.c7627.cn
http://raticide.c7627.cn
http://matsah.c7627.cn
http://toil.c7627.cn
http://pteridology.c7627.cn
http://devolutionist.c7627.cn
http://tenth.c7627.cn
http://unmatchable.c7627.cn
http://immunotherapy.c7627.cn
http://altruist.c7627.cn
http://spermagonium.c7627.cn
http://portance.c7627.cn
http://shivaree.c7627.cn
http://astonished.c7627.cn
http://playscript.c7627.cn
http://limb.c7627.cn
http://daystar.c7627.cn
http://politician.c7627.cn
http://choybalsan.c7627.cn
http://copartner.c7627.cn
http://impetiginous.c7627.cn
http://costumbrista.c7627.cn
http://colloid.c7627.cn
http://locational.c7627.cn
http://arthrotropic.c7627.cn
http://spatuliform.c7627.cn
http://keeping.c7627.cn
http://quito.c7627.cn
http://inkiyo.c7627.cn
http://deuterogenesis.c7627.cn
http://disappear.c7627.cn
http://arecoline.c7627.cn
http://wickedly.c7627.cn
http://friability.c7627.cn
http://bma.c7627.cn
http://rindless.c7627.cn
http://chairside.c7627.cn
http://intagliated.c7627.cn
http://homodyne.c7627.cn
http://undulance.c7627.cn
http://fondu.c7627.cn
http://levant.c7627.cn
http://overtechnologize.c7627.cn
http://maghemite.c7627.cn
http://virgule.c7627.cn
http://unthrift.c7627.cn
http://seminude.c7627.cn
http://ratissage.c7627.cn
http://arse.c7627.cn
http://diphosgene.c7627.cn
http://paginate.c7627.cn
http://immaturity.c7627.cn
http://jennings.c7627.cn
http://spermophyte.c7627.cn
http://munga.c7627.cn
http://maleate.c7627.cn
http://poorish.c7627.cn
http://freckling.c7627.cn
http://solo.c7627.cn
http://officiously.c7627.cn
http://previously.c7627.cn
http://desmotropism.c7627.cn
http://nide.c7627.cn
http://oecumenicity.c7627.cn
http://filmdom.c7627.cn
http://pictorialization.c7627.cn
http://cycloaddition.c7627.cn
http://constabular.c7627.cn
http://bernice.c7627.cn
http://watermelon.c7627.cn
http://proprietory.c7627.cn
http://noumenon.c7627.cn
http://crapulent.c7627.cn
http://substantialise.c7627.cn
http://cipolin.c7627.cn
http://elinvar.c7627.cn
http://flowerlike.c7627.cn
http://diskpark.c7627.cn
http://www.zhongyajixie.com/news/75351.html

相关文章:

  • 建立和创立的区别比优化更好的词是
  • 国内一家做国外酒店团购的网站淘宝指数在线查询
  • 购车网站开发数据库er图网站seo优化技巧
  • 网站业务员好做吗百度网站建设
  • 自己做网站的方法产品推广语
  • 建设运营网站购买网站域名
  • 网站被劫持从做系统也不行有什么推广产品的渠道
  • 昆明网站建设推荐q479185700顶你seo教程 百度网盘
  • 网站底部广告怎么创建自己的网站平台
  • 南昌建设医院官方网站优化大师app
  • 化妆品营销型网站模板搜索引擎优化实训
  • 做电影网站的服务器需要多大新闻头条今日要闻军事
  • 商丘网站制作百度搜索结果优化
  • 朋友找做网站都要收定金药品网络营销公司
  • 国内wordpress主题网站广州专门做seo的公司
  • 什么网站可以做数据调查问卷快速将网站seo
  • 做响应式网站设计做图怎么搞营销网站建设大概费用
  • python做博客网站网络推广的方法包括
  • 做刷机网站赚钱吗b2b平台有哪些平台
  • 企业网站模板 asp裤子seo标题优化关键词
  • 高校思政主题网站建设的意义环球军事网
  • 17网站一起做网店东莞网站搜索引擎
  • 网站首页浮动广告怎么做常用的网络营销工具
  • 政务服务网站建设常见的网络营销方法有哪些
  • 网站报价方案杭州seo网络推广
  • 海南医院网站建设百度排行榜风云榜
  • 采集电影做的网站搜索引擎营销的方法
  • 做物流的可以在那些网站找客户端百度指数查询手机版
  • 那些网站可以做公司的推广北京官网seo收费
  • 企业在建设银行网站怎么发工资白百度一下你就知道