20天集训——day16

今天讲的是基本的数据结构,讲了链表,栈,队列,堆,STL的部分模板使用。

链表:是一种没有天生顺序关系的“数组”,是一种把零散的数据串起来的数据结构,它不依靠下标这种天生存在的数据关系串联数据,而是利用专门记录每个数据前后是哪个数据,把所有数据联系起来。专门记录每个数据前后是哪个数据是其方便插入和删除数据。但不方便其遍历。当开数组记录数据时有较多的空余,浪费,但又必须开这么大时,也可以用链表。

遍历元素:遍历链表1

for(int i=f[1];i!=0;i=a[i].z)
    cout<<a[i].y<<endl;

插入元素:

next[px]=next[pa];
next[pa]=px;

删除元素:

next[pa]=next[px];
next[px]=0;

栈:栈是一种先进后出的容器先存进栈的元素比后存进栈的元素后出。

访问当前栈顶元素: s[top];

元素进栈:++top; s[top]=x;

栈顶元素出栈:--top;

队列:是一种先进先出的容器,先存进队列的元素比后存进队列内的元素先取出。要用两个变量记录队列的头和尾。

访问当前队首元素:q[head+1]

新的元素入队:++tail; q[tail]=x;

队头元素出队:++head;

普通队列:

队空条件: head=tail;

队满条件:tail=n-1;

队尾插入x:++tail; q[tail]=x;

队头出队:++head;

实际容量:tail-head;

环形队列:

对空条件:head=tail;

队满条件:(tail+1)%n=head;

队尾插入x:tail=(tail+1)%n; q[tail]=x;

队头出队:head=(head+1)%n;

实际容量:(n+tail-head)%n;

堆:是父亲值总比儿子值大或父亲值总比儿子值小的完全二叉树。按父亲、儿子数值的比较关系分为“大根堆”和“小根堆”。适合用于频繁查找序列中最值的问题。

调整:

void h(int x)
{
 int child=x*2;
 while(child<=n)
 {
  if(child<n&&a[child+1]<a[child]) child++;
  if(a[x]>a[child])
  {
   swap(a[x],a[child]);
   x=child;
   child=x*2;
  }
  else break;
 }
}

建堆:

void b()
{
 int i;
 for(int i=n/2;i>=1;i--)
  h(i);
}

删除堆首元素:

void d()
{
 if(n==1)
  n=0;
 else
 {
  a[1]=a[n--];
  h[1];
 }
}

插入新元素:

void intn(int k)
{
 int x+=++n;
 while(x>1)
 {
  if(k<a[x/2])
  {
   a[x]=a[x/2];
   x/=2;
  }
  else break;
 }
 a[x]=k;
}

STL的部分模板使用还是上网查吧。

## 01、数据介绍 数据整理全国30个省份制造业细分行业产值,能够反映一定时期内细分行业工业生产总规模和总水平的指标,是计算工业生产发展速度和主要比例关系、计算工业产品销售率等其他经济指标的基础。先进制造业数据可用于两业融合测算。 数据名称:全国30省-制造业细分行业产值/先进制造业细分行业产值数据 数据年份:2001-2022年 ## 02、数据指标 农副食品加工业;食品制造业;饮料制造业;烟草制造业;纺织业;纺织服装鞋帽制造业;皮革、毛皮、羽毛(绒)极其制品业;木材加工及木、竹、藤、棕、草制品业;家具制造业;造纸及纸制品业;印刷业和记录媒介的复制;文教体育用品制造业;石油加工、炼焦及核燃料加工业化;学原料及化学制品制造业;医药制造业;化学纤维制造业;橡胶和塑料制品制品业;非金属矿物制品业;黑色金属冶炼及压延加工业;有色金属冶炼及压延加工业;金属制品业;通用设备制造业;专用设备制造业;汽车制造业;其他运输设备制造业;电气机械及器材制造业;通信设备计算机及其他电子设备制造业;仪器仪表及文化、办公用机械制造业;其他制造业;废弃资源和废旧材料回收加工业;制造业总产值 印刷业和记录媒介的复制;石油加工、炼焦及核燃料加工业;化学原料及化学制品制造业;医药制造业;橡胶和塑料制品制品业;非金属矿物制品业;黑色金属冶炼及压延加工业;有色金属冶炼及压延加工业;金属制品业;通用设备制造业;专用设备制造业;汽车制造业;其他运输设备制造业;电气机械及器材制造业;通信设备计算机及其他电子设备制造业;仪器仪表及文化、办公用机械制造业;废弃资源和废旧材料回收加工业
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值