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

旅游网站自己怎么做百度人工客服在线咨询

旅游网站自己怎么做,百度人工客服在线咨询,运城有做网站设计,网页制作与设计课本目录 线性表 顺序表 概念与结构 分类 静态顺序表 动态顺序表 动态顺序表的实现 线性表 线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表,链表,栈,队…

目录

线性表

顺序表

概念与结构

分类

静态顺序表

 动态顺序表

动态顺序表的实现


线性表

线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表,链表,栈,队列,字符串.......

线性表在逻辑上是线性结构,也就是说是连续的一条直线。 但是在物理结构上并不一定是连续的,线性表在物理上储存时,通常以数组和链表的形式存储。

顺序表

概念与结构

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

 顺序表

顺序表和数组的区别?

顺序表的底层结构是数组,对数组的封装,实现了常用的增删查改等接口。

分类

静态顺序表

概念:使用定长数组存储元素

#include<stdio.h>
#define N 7;
typedef int SLdatatype;
struct Seqlist
{SLdatatype a[N];//定长数组int size;       //有效数据个数
};

静态顺序表缺陷:空间少了不够用,给多了造成空间浪费。 

 动态顺序表

#include<stdio.h>
typedef int SLdatatype;
typedef struct Seqlist
{//动态顺序表--按需申请SLdatatype* arr;int size;	 //有效数据个数int capacity;//空间容量
}SL;

动态顺序表的实现

//初始化和销毁
void SeqListInit(SeqList* ps)
{ps->a = NULL;ps->size = ps->capacity = 0;
}
void SeqListDestroy(SeqList* ps)
{if(ps->a)free(ps->a);ps->a = NULL;ps->size = ps->capacity = 0;
}
//尾插
void SeqListPushBack(SeqList* ps, SLDateType x)
{	//空间不足时,扩容if (ps->size == ps->capacity){	//当capacity==0时int newcapacity=ps->capacity==0 ? 4 : 2 * (ps->capacity);SLDateType* tmp =(SLDateType*) realloc(ps->a, newcapacity *sizeof(SLDateType));//申请失败时if (tmp == NULL){perror("realloc fail!");exit(1);}ps->a = tmp;ps->capacity = newcapacity;}//当空间充足时ps->a[ps->size] = x;++ps->size;
}

由于后面的很多情况我们都要检查空间是否满了,所以我们直接把检查空间满了的程序提成一个函数

/检查空间是否足够
void checkifenough(SeqList* ps)
{		//空间不足时,扩容if (ps->size == ps->capacity){	//当capacity==0时int newcapacity = ps->capacity == 0 ? 4 : 2 * (ps->capacity);SLDateType* tmp = (SLDateType*)realloc(ps->a, newcapacity * sizeof(SLDateType));//申请失败时if (tmp == NULL){perror("realloc fail!");exit(1);}ps->a = tmp;ps->capacity = newcapacity;}
}

尾插就可以改进成

//尾插
void SeqListPushBack(SeqList* ps, SLDateType x)
{	assert(ps);checkifenough(ps);//当空间充足时ps->a[ps->size] = x;++ps->size;
}

时间复杂度O(1)

//头插
void SeqListPushFront(SeqList* ps, SLDateType x)
{assert(ps);checkifenough(ps);for (int i = ps->size; i >= 1; i--){ps->a[i] = ps->a[i-1];}ps->a[0] = x;(ps->size)++;
}

时间复杂度O(n)

//头删
void SeqListPopFront(SeqList* ps)
{assert(ps&&ps->a);//顺序表不能为空for (int i = 0; i < (ps->size - 1); i++){ps->a[i] = ps->a[i + 1];}(ps->size)--;
}

时间复杂度O(n) 

//尾删
void SeqListPopBack(SeqList* ps)
{assert(ps && ps->a);//顺序表不能为空(ps->size)--;
}

 时间复杂度O(1)

//查找,找到了返回下标,没找到,返回-1
int SeqListFind(SeqList* ps, SLDateType x)
{assert(ps && ps->a);for (int i = 0; i < ps->size; i++){if (ps->a[i] == x)return i;}return -1;
}
//顺序表在pos位置前插入x
void SeqListInsert(SeqList* ps, int pos, SLDateType x)
{assert(ps);assert(pos >= 0 && pos <= ps->size);checkifenough(ps);for (int i = ps->size; i >= pos + 1; i--){ps->a[i] = ps->a[i - 1];}ps->a[pos] = x;ps->size++;
}
// 顺序表删除pos位置的值
void SeqListErase(SeqList* ps, int pos)
{assert(ps && ps->a);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://www.dtcms.com/wzjs/75581.html

相关文章:

  • wordpress 输出123456seo排名技术软件
  • 做标书有哪些网站能接到bt磁力兔子引擎
  • 云南网站备案系统如何进行网站推广
  • j建网站凡科网怎么建网站
  • 安州区建设局网站营销推广怎么做
  • wordpress分类栏目关键词山西seo
  • 网站设计的特点网店运营策划方案
  • 盐城网站建设费用自媒体135的网站是多少
  • 网站建设职位网站定制开发
  • 上海房产做哪个网站好百度刷自己网站的关键词
  • 兴义市住房和城乡建设网站月销售百度推广登录官网入口
  • 网站地图怎么添加今日头条新闻消息
  • 一个月做网站百度一下首页百度
  • 网站做跳转链接网站关键词免费优化
  • 做dm素材网站人工智能培训心得
  • 网站程序找人做还是自己做seo优化网站的注意事项
  • 怎么利用网站做外链接中国十大策划公司排名
  • 中山seo推广优化武汉seo排名
  • 网站后台内容编辑器如何优化关键词的方法
  • 什么网站帮人做网页网站点击快速排名
  • 长沙建站网站2022年免费云服务器
  • 帮诈骗公司做网站网站推广seo设置
  • 北京做网站的好公司莆田seo推广公司
  • 爱站网怎么使用百度首页推荐关不掉吗
  • 青岛 网站设计国家再就业免费培训网
  • 班级展示网站百度推广培训
  • 做网站如何接单河南seo快速排名
  • 沈阳企业自助建站系统网络营销推广的
  • 茶叶网站开发目的和意义北京seo外包公司要靠谱的
  • 黑龙江建设网站广东全网推广