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

上海网站建设空间asp网站设为首页代码

上海网站建设空间,asp网站设为首页代码,自媒体培训学校,百度网站怎么做友情链接题目描述 你可以选择使用单链表或者双链表#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性#xff1a;val 和 next 。val 是当前节点的值#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表#xff0c;则还需要属性 prev 以指示链表中的…题目描述 你可以选择使用单链表或者双链表设计并实现自己的链表。 单链表中的节点应该具备两个属性val 和 next 。val 是当前节点的值next 是指向下一个节点的指针/引用。 如果是双向链表则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 实现 MyLinkedList 类 MyLinkedList() 初始化 MyLinkedList 对象。int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效则返回 -1 。void addAtHead(int val) 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后新节点会成为链表的第一个节点。void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度那么该节点会被追加到链表的末尾。如果 index 比长度更大该节点将 不会插入 到链表中。void deleteAtIndex(int index) 如果下标有效则删除链表中下标为 index 的节点。 示例 输入 [MyLinkedList, addAtHead, addAtTail, addAtIndex, get, deleteAtIndex, get] [[], [1], [3], [1, 2], [1], [1], [1]] 输出 [null, null, null, null, 2, null, 3]解释 MyLinkedList myLinkedList new MyLinkedList(); myLinkedList.addAtHead(1); myLinkedList.addAtTail(3); myLinkedList.addAtIndex(1, 2); // 链表变为 1-2-3 myLinkedList.get(1); // 返回 2 myLinkedList.deleteAtIndex(1); // 现在链表变为 1-3 myLinkedList.get(1); // 返回 3 提示 0 index, val 1000 请不要使用内置的 LinkedList 库。 调用 get、addAtHead、addAtTail、addAtIndex 和 deleteAtIndex 的次数不超过 2000 。分析思路 是一道链表的经典题需要多做几遍注意size的大小和边界条件的判断。一直晕晕的 class MyLinkedList { private:// 定义链表节点结构体struct LinkedNode{int val; // 值valLinkedNode* next; // 指针next// 三个构造函数LinkedNode():val(0), next(nullptr){} // 空参数LinkedNode(int val):val(val), next(nullptr){} // 一个参数LinkedNode(int val, LinkedNode* next): val(val), next(next){} // 两个参数};int _size; // 链表长度LinkedNode* _dummyHead; // 虚拟节点 public:// 构造函数MyLinkedList() {_dummyHead new LinkedNode(0); // _dummyHead初始化val0指向空_size 0; // size大小为0}int get(int index) {if( index0 || index (_size-1)){ // 大于size-1无意义等于有意义return -1;}LinkedNode* cur _dummyHead-next; // 从head开始取值因此指向dummyHead的nextwhile(index){cur cur-next;index--;}return cur-val;}void addAtHead(int val) {LinkedNode* newHead new LinkedNode(val);newHead-next _dummyHead-next;_dummyHead-next newHead;_size;}void addAtTail(int val) {LinkedNode* tailNode new LinkedNode(val);LinkedNode* cur _dummyHead; while(cur-next ! nullptr){cur cur-next;}cur-next tailNode;_size;}void addAtIndex(int index, int val) {if (index _size) return;if (index 0) index 0;LinkedNode* newNode new LinkedNode(val);LinkedNode* cur _dummyHead;while(index){cur cur-next;index--;}newNode-next cur-next;cur-next newNode;_size;}void deleteAtIndex(int index) {if(index0 || index (_size-1)) return;LinkedNode* cur _dummyHead;while(index){cur cur-next;index--;}LinkedNode* tmp cur-next;cur-next cur-next-next;delete tmp;//delete命令指示释放了tmp指针原本所指的那部分内存//被delete后的指针tmp的值地址并非就是NULL而是随机值。也就是被delete后//如果不再加上一句tmpnullptr,tmp会成为乱指的野指针//如果之后的程序不小心使用了tmp会指向难以预想的内存空间tmpnullptr;_size--;} };/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList* obj new MyLinkedList();* int param_1 obj-get(index);* obj-addAtHead(val);* obj-addAtTail(val);* obj-addAtIndex(index,val);* obj-deleteAtIndex(index);*/
http://www.huolong8.cn/news/225244/

相关文章:

  • 2019年开公司做网站可以吗网络营销软文范例500字
  • js获取网站html江苏省住房和建设厅网站首页
  • 网站建设深圳官网医院网络系统
  • 怎么改网站模块江西建设部网站
  • 电商站外推广平台有哪些研学网站开发需求文档
  • 自建设网站有没有便宜的网站建设
  • 做个网站费用苏醒主题做的网站
  • wordpress下载资源站主题seo代运营
  • wordpress 电商网站口碑好的邯郸网站建设
  • 网站系统 外贸信息流广告代运营
  • 求推荐个网站赣州人才网官网入口
  • 做企业网站要注意什么福州市台江区网站
  • 南充网站建设hulingwl漯河网站建设
  • c网站建设缔造自助建站
  • wordpress建站手机端网站请及时续费
  • 泰州网站建设做网站优化的公司的宣传海报
  • 微企点自助建站系统网站的域名怎么起
  • 腾讯云怎么备案网站wordpress缩略图中大大
  • wordpress付费浏览优化seo
  • 网站开发的图片上海企业排行榜
  • 网站开发结束语网站正在备案中模板
  • 电商网站开发平台用什么人开发网站翻页动画效果
  • 网站添加微信支付功能贵阳专业网站建设公司哪家好
  • 学院的网站建设的意义如何成立一个自己的品牌
  • 用表格做网站初中学习网站大全免费
  • 东莞网站推广大全在百度上做网站有用吗
  • 长春火车站到龙嘉机场动车时刻表盛大正版传奇世界手游
  • 政务公开既网站信息化建设会议找人做网站 源码被盗用
  • 什么是建设网站工具产品展示网站模板
  • 网站建设免费免代码专门做奢侈品的网站有哪些