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

算法竞赛阶段二-数据结构(35)数据结构单链表模拟实现

//链表--链式存储的线性表 
//存信息和下一个节点位置,数据域和指针域合起来叫节点
//带头(哨兵位)下标为0 
//单向,双向,循环链表
//实现 单
//俩足够大数组 
// elem,数据域 
// next ,指针域
//下标
//head,头结点下标;id新节点位置  h=0,id=0;
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10; 
//定义,初始化
int e[N],ne[N],h,id;
int mp[N]; 
//    头插,,兵 ,   ,下一节点 
//             (x)
void push_front(int x)
{
id++;
e[id]=x;
mp[x]=id; 
ne[id]=ne[h];
ne[h]=id;
//mp[x]=id;

// 遍历,打印 
void print() 
{
//    for(int i=1;i!=)
for(int i=ne[h];i;i=ne[i])
{
cout<<e[i]<<" ";
}
}
//按值查找下标 
int find (int x)
{

//    for(int i=ne[h];i;i=ne[i])
//    {
//        if(e[i]==x) return i; 
//    }return 0;

//按值查找方法二,重新标记数组哈希 cout<<mp[x];
// 太大开不了,不能存重复 
return mp[x];


//任意   存储  位置(实际存的下标的位置) 之 后 插入元素
//   p
//   x     y
//      z
void insert(int p,int x)
{
id++;
e[id]=x;
mp[x]=id;
ne[id]=ne[p];
ne[p]=id;

// 删除任意(存储位置p)之后位置
//    p
//    x    y     z      
void erase (int p) 
{
if(ne[p])
{

ne[p]=ne[ne[p]];
mp[e[ne[p]]]=0;

}
}

int main()
{
for(int i=0;i<6;i++)
push_front(i);// 5 4 3 2 1 0 
print();
cout<<endl<<find (5);//6
cout<<endl<<find (0);//1
cout<<endl;
insert(1 ,88);
print();
cout<<endl;
insert(6,99);
print();
cout<<endl;
insert(3 ,33);
print();
cout<<endl;
insert(7 ,100);
print();
cout<<endl;
insert(8 ,666);
print();
cout<<endl;
erase(4);
print();
cout<<endl;
erase(3);//第三个已经删没了


print();
cout<<endl;
erase(4);
print();
return 0;
}

http://www.dtcms.com/a/299238.html

相关文章:

  • springboot + vue3 拉取海康视频点位及播放
  • Kafka——Java消费者是如何管理TCP连接的?
  • JavaWeb01——基础标签及样式(黑马视频笔记)
  • [2025CVPR:图象合成、生成方向]WF-VAE:通过小波驱动的能量流增强视频 VAE 的潜在视频扩散模型
  • SSRF_XXE_RCE_反序列化学习
  • 「iOS」——内存五大分区
  • C++核心编程学习--对象特性--对象模型和this指针
  • 旧设备HMI焕新陷阱:操作习惯继承与智能化升级的平衡点把控
  • ​机器学习从入门到实践:算法、特征工程与模型评估详解
  • pose调研
  • # JsSIP 从入门到实战:构建你的第一个 Web 电话
  • Vue》》@ 用法
  • 期货资管软件定制开发流程
  • Matlab学习笔记:自定义函数
  • Vue 3 与 Element Plus 中的 /deep/ 选择器问题
  • 如果在分支A上修改了内容,想要提交更新内容的话,如何与develop上的主分支的最新的代码拉齐
  • linux线程概念和控制
  • Node.js特训专栏-实战进阶:19.dotenv环境变量管理
  • 零基础学习性能测试第三章:jmeter构建性能业务场景
  • [C/C++内存安全]_[中级]_[再次探讨避免悬垂指针的方法和检测空指针的方法]
  • 《从零开始学 JSSIP:JavaScript 实时通信开发实战》
  • QT核心————信号槽
  • Qt 多线程编程最佳实践
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——6. 传统算法实战:用OpenCV测量螺丝尺寸
  • 基于粒子群算法优化高斯过程回归(PSO-GPR)的多输出回归
  • 数据科学与大数据技术专业的核心课程体系及发展路径全解析
  • Jenkins运行pytest时指令失效的原因以及解决办法
  • Java集合体系详解
  • docker常用命令集(3)
  • 【守护】同为科技SPD:AP-20D/4P产品解析