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

淘宝客网站建设制作公司资料网页

淘宝客网站建设,制作公司资料网页,wordpress 论坛编辑器,公众平台助手(一)实验类型:设计性 (二)实验目的: 1. 掌握线性表的链式存贮结构及基本操作,深入了解链表的基本特性,以便在实际问题背景下灵活运用它们。 2. 巩固该存贮结构的构造方法&#xff0…

(一)实验类型:设计性

(二)实验目的:

      1. 掌握线性表的链式存贮结构及基本操作,深入了解链表的基本特性,以便在实际问题背景下灵活运用它们

      2. 巩固该存贮结构的构造方法,深入理解和灵活掌握链表的插入、删除等操作

(三)实验内容:

1. 建立线性表的链式存储结构。

2. 完成链表操作:建立,初始化,增加,插入,删除。

 


#include <iostream>// 链表节点结构
struct ListNode {int val;                // 节点存储的值ListNode* next;         // 指向下一个节点的指针
};// 初始化链表
void initList(ListNode*& head) {head = nullptr;
}// 在链表尾部添加节点
void appendNode(ListNode*& head, int value) {ListNode* newNode = new ListNode;      // 创建新节点//创建新的空间newNode->val = value;newNode->next = nullptr;if (head == nullptr) {head = newNode;                     // 如果链表为空,直接将新节点作为头节点}else {ListNode* tmp = head;while (tmp->next != nullptr) {tmp = tmp->next;                 // 遍历链表,找到尾部节点}tmp->next = newNode;                 // 将新节点连接到尾部节点的next指针上}
}// 在指定位置插入节点
void insertNode(ListNode*& head, int value, int pos) {if (pos <= 0) {ListNode* newNode = new ListNode;  // 创建新节点newNode->val = value;newNode->next = head;               // 将新节点连接到头节点之前head = newNode;                     // 将新节点作为头节点}else {ListNode* tmp = head;int count = 1;while (tmp != nullptr && count < pos)//tmp != nullptr是因为我们插入是必须要左右两边都有数据才能叫插入,//不然就只能添加,不可以直接填在一个很远的空间里,不然就浪费空间了{tmp = tmp->next;                 // 遍历链表,找到指定位置的前一个节点count++;}if (tmp != nullptr)//必须是在tmp不为空时,才能算成插入。//再次判断是因为我们只选取count遍历到pos的位置的这种情况,而不是空的链表的情况。{ListNode* newNode = new ListNode;  // 创建新节点newNode->val = value;newNode->next = tmp->next;         // 将新节点连接到当前节点的next指针上//这是链接步骤的代码,把数据插入//至于next是因为我们是要插入在数据的中间,也就是tmp的next的位置tmp->next = newNode;//这个是指向新的插入数据的步骤,方便下一次数据的插入。}else {std::cout << "插入位置超过链表长度!" << std::endl;}}
}// 删除指定位置的节点
void deleteNode(ListNode*& head, int pos) {if (head == nullptr) {std::cout << "链表为空,无法删除节点!" << std::endl;return;}if (pos <= 0) {ListNode* tmp = head;head = head->next;          // 删除头节点delete tmp;}else {ListNode* tmp = head;int count = 1;while (tmp->next != nullptr && count < pos) {tmp = tmp->next;        // 遍历链表,找到指定位置的前一个节点count++;}if (tmp->next != nullptr) {ListNode* delNode = tmp->next;//先指向当前数据tmp->next = delNode->next;//直接将当前数据跳到下一个,前面已经链接好的数据不会丢失因为都在同一个位置//我们不过是把当前数据覆盖成下一个罢了delete delNode;}else {std::cout << "删除位置超过链表长度!" << std::endl;}}
}// 打印链表
void printList(ListNode* head) {ListNode* tmp = head;while (tmp != nullptr) {std::cout << tmp->val << " ";tmp = tmp->next;}std::cout << std::endl;
}int main() {ListNode* myList;initList(myList);// 在链表尾部增加节点appendNode(myList, 1);appendNode(myList, 2);appendNode(myList, 3);printList(myList);  // 输出:1 2 3// 在指定位置插入节点insertNode(myList, 4, 2);printList(myList);  // 输出:1 4 2 3// 删除节点deleteNode(myList, 2);printList(myList);  // 输出:1 2 3return 0;
}

http://www.dtcms.com/wzjs/542825.html

相关文章:

  • 惠州网站建设技术支持订单插件 wordpress
  • 网站开发成本有哪些合肥seo优化
  • 小学学校网站软件界面设计工具都有什么
  • 做写字楼用哪个网站更好静态网页扩展名
  • 宜昌网站建设开发wordpress 禁止收录特定文章
  • 网站建设与应用网站建设的重点是什么
  • 美食网站的建设背景标识设计网站
  • 宿州网站建设装饰工程公司属于什么行业
  • 网站添加微博app开发软件外包
  • 网站建设近义词如何建设电商网站
  • php企业网站开发价格wordpress删除菜单
  • 网站备案主体变更企业网站建设费用摊销
  • 网站开发的关键计算机资源计划企业网站开发报价表
  • 做相册的网站 ppt东莞网站新站排名
  • 为网站网站做推广网站怎么做301跳转
  • 好单库如何做网站传奇 网游
  • 成都制作网站公司简介中国icp备案网站
  • 企业网站建设思路百度指数关键词
  • 梅州建设公司网站微信微网站模板
  • 显示网站运行时间代码ui网页设计课程总结
  • 太原微信网站开发jspajax网站开发典型实例
  • 惠州网站关键字优化医药网站建设方案
  • 在一个网站的各虚拟目录中默认文档的文件名要相同wordpress激活码充值
  • 网站管理有哪些手机能建网站不
  • 网站建设 专项资金变更怎么用外网校内网站做英语
  • 邮箱网址大全号码大全海口seo整站
  • 重庆市网站备案黄山建设网站公司电话号码
  • 网站软文怎么写wordpress esc html x
  • 北京模板网站开发网站建设可行性的分析
  • 贵州省省建设厅网站教务管理系统哪个好