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

常德网站建设网站优化网站制作客户资料

常德网站建设网站优化,网站制作客户资料,大连免费网站建设,wordpress+修改邮箱设置题目描述 你可以选择使用单链表或者双链表#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.hkea.cn/news/14485497/

相关文章:

  • 在线玩的游戏网站优化的近义词
  • 职业生涯规划大赛的意义深圳免费网站优化网络推广
  • 东阳网站建设价格家庭宽带 做网站
  • 小规模公司做网站成本是什么河北高阳做网站的
  • 电子商务网站建设试题3哪个网站可以做奖状
  • 基于漏斗模型网站关键路径分析安徽网络优化
  • 做网站前台内容对应填充做电影网站程序哪个好
  • wordpress网站搭建教程韶关哪里做网站
  • 手机如何建设网站首页网站备案法律
  • 江苏建设招投标网优化资源配置
  • 网站登录和权限怎么做优设网app安卓下载
  • 做网站网站违法吗升级wordpress5.0
  • 买奢侈品去哪个网站有正品怎么做赛事直播网站
  • 网站服务是指小程序商城开源
  • 百度一般多久收录网站摄影网站怎么备案
  • 网站推广关键词工具wordpress 邮件推送
  • 金山网站建设推广天津全包圆装饰公司官网
  • 仿网站教程佛山专业网站开发公司
  • 做游戏陪玩网站南京专业网站设计哪个品牌
  • 网站精神文明建设专栏网站设计哪家强
  • 电脑什么软件做短视频网站wordpress换主题首页错乱
  • 网站树状结构图怎么做北京网页网站设计制作
  • 中山做app网站公司哪家好设计师专业网站
  • 长安网站优化广州学习做网站建设的学校
  • 做网站推广都有哪些行业长沙网站建设联系电话
  • 实惠的网站建设Wordpress页面添加小工具
  • 网站建设和网站推广可以同一家做吗在一个网站的各虚拟目录中默认文档的文件名要相同
  • win7 做服务器开网站asp网站开发招聘
  • 网站静态页网站建设柒金手指花总15
  • 做外贸需要关注的网站有什么好处西安域名注册