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

怎么讲解网站今日大事件新闻

怎么讲解网站,今日大事件新闻,微信小程序开发用什么工具,wordpress例目录 1.顺序表的概念 2.静态顺序表的实现 总代码 3.stl库动态顺序表vector 测试代码 1.顺序表的概念 要理解顺序表,我们要先了解一下什么是线性表 线性表是n个具有相同特征的数据元素的序列 这就是一个线性表 a1是表头 a4是表尾 a2是a3的前驱 a3是a2的后继 空…

目录

1.顺序表的概念

2.静态顺序表的实现

总代码

3.stl库动态顺序表vector

测试代码


1.顺序表的概念

要理解顺序表,我们要先了解一下什么是线性表

线性表是n个具有相同特征的数据元素的序列

这就是一个线性表 a1是表头 a4是表尾 a2是a3的前驱 a3是a2的后继

空表表示一个元素也没有,用空寂表示

用顺序存储的方式实现的线性表就叫顺序表

用链式存储的方式实现的线性表就是链表

2.静态顺序表的实现

由于实现动态顺序表要很多很多delete和new,消耗很多的时间复杂度,而且我们已经有vecor这个东西了,所以我们就不实现动态的顺序表了,我们只实现一下静态顺序表

创建静态顺序表

const int N = 1e6 + 10;
int a[N],n;

静态顺序表的尾插

void push_back(int x)
{a[++n]=x;
}

测试尾插

由此可见,尾插的时间复杂度为O(1)

静态顺序表的头插

void push_front(int x)
{//我们头插要把所有元素向右移动一位,给我们要插入的元素腾出位置出来//但是如果我们从第一个元素右移,就会有覆盖的情况,所以我们从最后一个元素开始右移//把[1,n]的元素统一后移1位 for(int i = n;i>=1;i--){a[i+1] = a[i];} a[1] = x;n++; 
}

头插的时间复杂度是O(N)

测试头插

任意位置插入

void insert(int p,int x)
{//和我们头插保持一致,在p之前插入 ,头插是在下标为0之前插入//把[p,n]的元素统一右移 for(int i =n;i>=p;i--) {a[i+1] = a[i];}a[p] = x;
}

最坏情况下就是头插,所以我们的时间复杂度还是O(N)

测试任意位置插入

尾删

我们直接把有效元素减1,就能实现尾删操作,我们尾删的时间复杂度是O(1)

void pop_back()
{n--;} 

测试尾删

头删

void pop_front()
{for(int i = 2;i<=n;i++){a[i-1] = a[i];}n--;}

我们头删的时间复杂度是O(N)

测试代码

任意位置删除

void erase(int p)
{for(int i = p+1;i<=n;i++){a[i-1] = a[i];}n--;
}

按值查找

int find(int x)
{for(int i = 1;i<=n;i++){if(a[i]==x)return i;}
return 0;
}

测试查找操作

按位查找

int at(int p)
{return a[p];
}

清空操作

void clear()
{n = 0;
}

修改操作

void change(int p,int x)
{a[p] = x;
}

总代码

#include <iostream>
using namespace std;const int N = 1e6 + 10;
int a[N],n;
void push_back(int x)
{a[++n]=x;
}
void push_front(int x)
{//我们头插要把所有元素向右移动一位,给我们要插入的元素腾出位置出来//但是如果我们从第一个元素右移,就会有覆盖的情况,所以我们从最后一个元素开始右移//把[1,n]的元素统一后移1位 for(int i = n;i>=1;i--){a[i+1] = a[i];} a[1] = x;n++; 
}
void insert(int p,int x)
{//和我们头插保持一致,在p之前插入 ,头插是在下标为0之前插入//把[p,n]的元素统一右移 for(int i =n;i>=p;i--) {a[i+1] = a[i];}a[p] = x;
}
void pop_back()
{n--;} 
void Print()
{for(int i = 1;i<=n;i++){cout << a[i] << " ";}cout << endl;
}
void pop_front()
{for(int i = 2;i<=n;i++){a[i-1] = a[i];}n--;}
void erase(int p)
{for(int i = p+1;i<=n;i++){a[i-1] = a[i];}n--;
}
int find(int x)
{for(int i = 1;i<=n;i++){if(a[i]==x)return i;}return 0;
}
void clear()
{n = 0;
}
void change(int p,int x)
{a[p] = x;
}int at(int p)
{return a[p];
}
int main()
{push_back(2);Print();push_back(5);push_back(1);push_back(3);Print();push_front(10);Print();insert(3,0);Print();
//	cout << "尾删" << ": ";
//	pop_back();
//	Print();
//	cout << "头删" << ": ";
//	pop_front();
//	Print();
//cout << "删除" << ":";
//erase(3);
//Print(); 
for(int i = 1;i<=10;i++)
{cout << "查找" << i << ":";cout << find(i)<<" ";} 
}

3.stl库动态顺序表vector

创建vector

除此之外,我们vector的<>里还可以放stl和各种数据类型,vector<int> a[5]表示的就是创建一个元素为vector <int>的数组

三种打印方式 1 size()返回元素个数

2.迭代器

3.范围for

resize(可以扩充元素个数,也可以缩容)

扩大的元素值默认为0

尾插和尾删,和上面静态的差不多的

不多陈述

empty()判空

front和back分别是取头元素和尾元素

clear()清空元素

测试代码

#include <iostream>
#include <vector>
using namespace std;
const int N = 10;
void Print(vector<int>& pa)
{//用size返回元素个数for (int i = 0; i < pa.size(); i++){cout << pa[i] << " ";}cout << endl;//用begin() end()迭代器
//	for (auto it = pa.begin(); it != pa.end(); it++)
//	{
//		cout << *it << " ";
//	}
//	cout << endl;
//	//范围for (C++11支持)
//	for (auto e : pa)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//}
}int main()
{vector <int> a1;//创建一个a1 的可变长数组,size为0vector <int> a2(N);//创建一个a2的可变长数组,size为N,元素值初始化为0vector <int> a3(N, 2);//创建一个a3的可变长数组,size为N 元素初始化为2vector <int> a4 = { 1,2,3,4,5 };vector <string> s1;vector <int> a[5];vector <int> aa(5, 1);aa.resize(10);aa.resize(3);for (int i = 3; i <= 6; i++){a1.push_back(i);}Print(a1);a1.pop_back();cout << "头为" << a1.front() << "尾为" << a1.back();Print(a1);//while (!a1.empty())//{//	a1.pop_back();//}a1.clear();cout << a1.size() << endl;return 0;
}

http://www.yidumall.com/news/51184.html

相关文章:

  • 公司网站购买主机百度助手手机下载
  • 建设局网站查询首码项目推广平台
  • seo网站营销推广公司百度推广登录平台官网
  • 政府网站开发需求报告公司网址怎么制作
  • 个人网站备案材料百度法务部联系方式
  • 网站首页面专业优化网站排名
  • 赤峰网站建设培训学校营销推广渠道有哪些
  • 聊城网站建设招聘seo辅助优化工具
  • 手机3g门户首页长沙企业关键词优化哪家好
  • 做网站设计怎么提升自己如何开网站
  • 简单的购物网站怎么做免费的行情网站app软件
  • wordpress主题设置选择优势的seo网站优化排名
  • 新疆模板网站建设免费访问国外网站的app
  • 电脑版网站建设家庭优化大师免费下载
  • 专业网站设计服务在线咨询长沙全网覆盖的网络推广
  • 网站注册账号有风险吗西安seo优化顾问
  • 外贸英文网站建设价格品牌服务推广
  • 天津网站建设方案报价关键词数据分析
  • 5123一站二站三站香港全国疫情高峰感染进度
  • 东营信息网官网朝阳seo建站
  • 日照网站制作韶山百度seo
  • 郑州制作个人网站谷歌关键词推广怎么做
  • 网站建设专业导航网站推广策划方案范文
  • 做养生产品哪个网站好有域名了怎么建立网站
  • 阿里服务器可以做多少个网站网络广告营销
  • 实力网站建设电话seo站点
  • 深圳中国网站制作哪家公司好2022年最火文案
  • 网站开发流程的意义昆明网络推广优化
  • 网站建设维护员是做什么的企业网络搭建方案
  • 个人做商机网站如何盈利广州推广工具