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

做网页的素材网站国外建设工程招聘信息网站

做网页的素材网站,国外建设工程招聘信息网站,广州建设集团股份有限公司,企业软文营销目录 前言 1、顺序表的概念及结构: 1.1 线性表: 2、顺序表分类: 3、动态顺序表的实现: 初始化: 销毁: 增添: 删除: 打印: 总结 前言 在计算机科学中&#xff…

目录

前言

1、顺序表的概念及结构:

1.1 线性表:

2、顺序表分类:

3、动态顺序表的实现:

初始化:

销毁:

增添:

删除:

打印:

 

总结

 

前言

在计算机科学中,数据结构是组织和存储数据的方式,而顺序表(Sequential List)是最基础且广泛使用的数据结构之一。它以其简单、高效的特点,在众多编程场景中发挥着重要作用。


1、顺序表的概念及结构:

顺序表底层是数组,是线性表的一种,它的物理结构和逻辑结构都是连续的

 

1.1 线性表:

线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是种在实际中⼴泛使
⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的,
线性表在物理上存储时,通常以数组和链式结构的形式存储。


2、顺序表分类:

  • 静态顺序表

静态顺序表就相当于一个数组,静态的不能改变它的大小

typedef int SLDataType;
typedef struct SEquence
{SLDataType a[7];int size;//记录当前有效个数
}Sq;

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

  • 动态顺序表

动态顺序表就相当一个可以变化大小的数组,可以改变它的容量大小

typedef struct SEquence
{int* a;int size;//记录当前有效个数int capacity;//空间大小
}Sq;

3、动态顺序表的实现:

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
typedef struct SEquence
{int* a;int size;//记录当前有效个数int capacity;//空间大小
}Sq;
void Seqinit(Sq* p);
void SeqDestory(Sq* p);
void SeqpushFront(Sq* p,int x);
void SeqpushBack(Sq* p,int x);
void SeqdeleFront(Sq* p);
void SeqdeleBack(Sq* p);
void Seqprint(Sq* p);

初始化:

void Seqinit(Sq* p)
{assert(p);p->a = (int*)malloc(sizeof(int) * 4);if (p->a == NULL){perror("malloc fail");exit(1);}p->capacity = 4;p->size = 0;
}

销毁:

void SeqDestory(Sq* p)
{assert(p);free(p->a);p->capacity = p->size = 0;
}

增添:

  • 前插

前插入操作是在顺序表的指定位置插入一个新元素。为了保持存储的连续性,需要将插入位置之后的所有元素向后移动一个位置。插入操作的时间复杂度为 O(n)。以下是插入操作的代码实现:

void SeqpushFront(Sq* p, int x)
{assert(p);if (p->capacity == p->size){int* tmp = (int*)realloc(p->a,sizeof(int) * 2 * p->capacity);if (tmp == NULL){perror("realloc fail");exit(1);}p->a = tmp;p->capacity *= 2;}for (int i = p->size - 1; i >= 0; i--){p->a[i + 1] = p->a[i];}p->a[0] = x;p->size++;
}
  • 后插
void SeqpushBack(Sq* p, int x)
{assert(p);if (p->capacity == p->size){int* tmp = (int*)realloc(p->a,sizeof(int) * 2 * p->capacity);if (tmp == NULL){perror("realloc fail");exit(1);}p->a = tmp;p->capacity *= 2;}p->a[p->size++] = x;
}

删除:

  • 后删
void SeqdeleBack(Sq* p)
{assert(p);p->size--;
}
  • 前删

前删除操作是从顺序表中删除指定位置的元素。为了保持存储的连续性,需要将删除位置之后的所有元素向前移动一个位置。删除操作的时间复杂度为 O(n)。以下是删除操作的代码实现:

void SeqdeleFront(Sq* p)
{assert(p);for (int i = 0; i < p->size - 1; i++){p->a[i] = p->a[i + 1];}p->size--;
}

打印:

void Seqprint(Sq* p)
{assert(p);for (int i = 0; i < p->size; i++){printf("%d ", p->a[i]);}printf("\n");
}

 

 


总结

顺序表的特点

  • 优点1. 随机访问高效:由于顺序表的存储是连续的,可以通过索引直接访问任意位置的元素,时间复杂度为 O(1)。这种特性使得顺序表在需要频繁访问元素的场景中表现出色。
  • 2. 存储密度高:顺序表的存储结构简单,除了存储数据元素外,不需要额外的存储空间来维护元素之间的关系,因此存储密度较高。

 

  • 缺点1. 插入和删除效率低:插入和删除操作通常需要移动多个元素以保持存储的连续性,时间复杂度为 O(n),其中 n 是表的长度。这使得顺序表在需要频繁进行插入和删除操作的场景中表现不佳。
  • 2. 存储容量固定:顺序表的存储容量在定义时就已经确定,如果存储空间不足,需要进行扩容操作,这可能会导致较大的开销。

 


文章转载自:

http://kETKiJP0.pjphg.cn
http://o6nPlS7Q.pjphg.cn
http://QbGpE5he.pjphg.cn
http://ATOPd4sS.pjphg.cn
http://LSkYCqXt.pjphg.cn
http://A4bGwzbV.pjphg.cn
http://gQi6M2oU.pjphg.cn
http://BEPoVVJV.pjphg.cn
http://MyF0nE6H.pjphg.cn
http://mnAmBR8L.pjphg.cn
http://drH8AUR7.pjphg.cn
http://qDleVZH4.pjphg.cn
http://5jxSAkmS.pjphg.cn
http://0VRJzrPE.pjphg.cn
http://NkRlFDtF.pjphg.cn
http://4ekmsv8O.pjphg.cn
http://EWpSdYJw.pjphg.cn
http://KELGQWac.pjphg.cn
http://mnOhjslf.pjphg.cn
http://iXnWUkPs.pjphg.cn
http://hy45tmvb.pjphg.cn
http://W3y7SRjB.pjphg.cn
http://VU8Nhvo5.pjphg.cn
http://xiCO8dXQ.pjphg.cn
http://SLHA5Mll.pjphg.cn
http://JkicIIk2.pjphg.cn
http://vlWopWGk.pjphg.cn
http://r6DZ07JJ.pjphg.cn
http://7JVwih6x.pjphg.cn
http://zn7RXgVy.pjphg.cn
http://www.dtcms.com/wzjs/668689.html

相关文章:

  • 做视频网站怎么盈利模式word 关于做网站
  • 襄阳电商网站建设无锡网站建设方案托管
  • 欧美网站源码十大短视频平台排行榜
  • 如何做公众号影视网站wordpress 标签 文章
  • 网站大事记时间轴折叠wordpress 三一重工
  • 使用vue做的购物网站设计app界面的软件
  • 360网站推广官网硅钙钾镁肥两山开发公司
  • crm系统网站在线培训管理系统
  • 潍坊网站建设设计页面模板免费
  • 做安卓app用什么软件黑帽seo技巧
  • 哪里有制作网站万网查询全部域名
  • 品牌百度网站建设海外网站服务器网址
  • 广州市天河区工程建设监督网站怎么创自己的网站
  • 厦门网站建设厦门seo国外购物网站系统
  • 怎么做ppt教程网站mip手机网站模板
  • 燕郊医疗网站建设做公司网站多钱
  • 江北网站建设的技术福清建设局网站简介
  • 昆明企业免费建站买一个商标大概要多少钱
  • wordpress 阅读seo咨询顾问
  • 北京电商网站开发平台wordpress xiu底部广告
  • 百度seo网站优化怎么做长尾关键词什么意思
  • 有哪些做平面设计好的网站宁波seo搜索平台推广专业
  • 网站认证是什么淘宝官方网站登录页面
  • 娱乐城网站开发北京家装设计公司
  • 有哪些图片设计网站有哪些问题产品推广的渠道有哪些
  • 江苏卓业建设网站温州网站开发网站的制作
  • 电影网站建设规划书开发手机网站多少钱
  • 南屏网站建设网站建设教程视频
  • 网站建设挣钱 知乎平面设计培训班有用吗
  • 买的网站可做360广告联盟吗中山市网站建设