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

网站后台管理系统进度高端旅游网站制作

网站后台管理系统进度,高端旅游网站制作,河东手机网站建设,wordpress menu 插件目录 前文、线性表的定义及其基本操作#xff08;顺序表插入、删除、查找、修改#xff09; 四、线性表的链接存储结构 1. 单链表#xff08;C语言#xff09; a. 链表节点结构 b. 创建新节点 c. 在链表末尾插入新节点 d. 删除指定节点 e. 修改指定节点的数据 f. …目录 前文、线性表的定义及其基本操作顺序表插入、删除、查找、修改 四、线性表的链接存储结构 1. 单链表C语言 a. 链表节点结构 b. 创建新节点 c. 在链表末尾插入新节点 d. 删除指定节点 e. 修改指定节点的数据 f. 遍历链表并打印 g. 主函数 C语言代码整合 Cpp代码整合 前文、线性表的定义及其基本操作顺序表插入、删除、查找、修改 按照线性表结点间的逻辑顺序依次将它们存储于一组地址连续的存储单元中的存储方式被称为线性表的顺序存储方式。 按顺序存储方式存储的线性表具有顺序存储结构一般称之为顺序表。换言之在程序中采用定长的一维数组按照顺序存储方式存储的线性表被称为顺序表。若顺序表中的元素按其值有序则称其为有序顺序表。 在高级程序设计语言中“数组”这种数据类型同样具有随机存储的特性因此用高级程序设计语言实现线性表的顺序存储结构时通常选择数组。因此数组的长度就是顺序表的最大长度MaxSize顺序表的实际长度为length其值必须小于等于MaxSize。 【数据结构】线性表一线性表的定义及其基本操作顺序表插入、删除、查找、修改-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132089038?spm1001.2014.3001.5501 四、线性表的链接存储结构 顺序表的优点是存取速度快。但是无论是插入一个结点还是删除一个结点都需要调整一批结点的地址。要克服该缺点就必须给出一种不同于顺序存储的存储方式。用链接存储方式存储的线性表被称为链表可以克服上述缺点。 链表中的结点用存储单元若干个连续字节来存放存储单元之间既可以是存储空间上连续的也可以是不连续的甚至可以零散地分布在存储空间中的任何位置。换言之链表中结点的逻辑次序和物理次序之间并无必然联系。最重要的是链表可以在不移动结点位置的前提下根据需要随时添加删除结点动态调整。 1. 单链表C语言 在链接存储结构中插入和删除操作相对于顺序存储结构而言更加高效时间复杂度为O(1)。而查找操作的时间复杂度为O(n)。 a. 链表节点结构 typedef struct Node {int data;struct Node* next; } Node; 链表节点的结构体 Node包含一个整数数据 data 和一个指向下一个节点的指针 next b. 创建新节点 Node* createNode(int data) {Node* newNode (Node*)malloc(sizeof(Node));if (newNode ! NULL) {newNode-data data;newNode-next NULL;}return newNode; } 创建一个新的节点并返回指向该节点的指针 使用 malloc 分配了节点的内存空间将传入的数据赋值给节点的 data 字段并将 next 字段设置为 NULL。 c. 在链表末尾插入新节点 void insertAtEnd(Node** head, int data) {Node* newNode createNode(data);if (newNode NULL) {printf(内存分配失败\n);return;}if (*head NULL) {*head newNode;} else {Node* temp *head;while (temp-next ! NULL) {temp temp-next;}temp-next newNode;}printf(已在链表末尾插入节点%d, data); } 调用 createNode 函数创建一个新节点检查内存分配是否成功 如果成功则根据链表是否为空来确定新节点的位置。若链表为空则将新节点设置为头节点否则遍历链表找到最后一个节点并将最后一个节点的 next 指针指向新节点。 d. 删除指定节点 void deleteNode(Node** head, int data) {if (*head NULL) {printf(链表为空\n);return;}Node* temp *head;Node* prev NULL;if (temp ! NULL temp-data data) {*head temp-next;free(temp);printf(已删除节点%d, data);return;}while (temp ! NULL temp-data ! data) {prev temp;temp temp-next;}if (temp NULL) {printf(节点 %d 不存在\n, data);return;}prev-next temp-next;free(temp);printf(已删除节点%d, data); } 检查链表是否为空如果为空则输出相应的提示信息。遍历链表找到要删除的节点。 如果找到了节点则修改前一个节点的 next 指针使其跳过要删除的节点并释放该节点的内存空间。如果没有找到要删除的节点则输出相应的提示信息。 e. 修改指定节点的数据 void modifyNode(Node* head, int oldData, int newData) {if (head NULL) {printf(链表为空\n);return;}Node* temp head;while (temp ! NULL) {if (temp-data oldData) {temp-data newData;printf(已将节点 %d 修改为 %d\n, oldData, newData);return;}temp temp-next;}printf(节点 %d 不存在\n, oldData); } 查找~删除~修改……这里不重复介绍懂的都懂不懂我也没办法 f. 遍历链表并打印 void printList(Node* head) {if (head NULL) {printf(链表为空\n);return;}Node* temp head;printf(链表节点数据);while (temp ! NULL) {printf(%d , temp-data);temp temp-next;}printf(\n); } 检查链表是否为空如果为空则输出相应的提示信息。使用一个临时指针变量 temp 来遍历链表依次访问每个节点并打印其数据。 g. 主函数 nt main() {Node* head NULL; // 头节点insertAtEnd(head, 1);insertAtEnd(head, 2);insertAtEnd(head, 3);printList(head);deleteNode(head, 2);printList(head);deleteNode(head, 4);return 0; } 创建了一个头节点 head调用 insertAtEnd 函数三次在链表末尾插入了三个节点调用 printList 函数打印链表的节点数据调用 deleteNode 函数删除链表中的一个节点并再次打印链表的节点数据调用 deleteNode 函数尝试删除一个不存在的节点。 C语言代码整合 #include stdio.h #include stdlib.h// 定义链表节点结构 typedef struct Node {int data;struct Node* next; } Node;// 创建新节点 Node* createNode(int data) {Node* newNode (Node*)malloc(sizeof(Node));if (newNode ! NULL) {newNode-data data;newNode-next NULL;}return newNode; }// 在链表末尾插入新节点 void insertAtEnd(Node** head, int data) {Node* newNode createNode(data);if (newNode NULL) {printf(内存分配失败\n);return;}if (*head NULL) {*head newNode;} else {Node* temp *head;while (temp-next ! NULL) {temp temp-next;}temp-next newNode;}printf(已在链表末尾插入节点%d, data); }// 删除指定节点 void deleteNode(Node** head, int data) {if (*head NULL) {printf(链表为空\n);return;}Node* temp *head;Node* prev NULL;if (temp ! NULL temp-data data) {*head temp-next;free(temp);printf(已删除节点%d, data);return;}while (temp ! NULL temp-data ! data) {prev temp;temp temp-next;}if (temp NULL) {printf(节点 %d 不存在\n, data);return;}prev-next temp-next;free(temp);printf(已删除节点%d, data); } // 修改指定节点的数据 void modifyNode(Node* head, int oldData, int newData) {if (head NULL) {printf(链表为空\n);return;}Node* temp head;while (temp ! NULL) {if (temp-data oldData) {temp-data newData;printf(已将节点 %d 修改为 %d\n, oldData, newData);return;}temp temp-next;}printf(节点 %d 不存在\n, oldData); } // 遍历链表并打印节点数据 void printList(Node* head) {if (head NULL) {printf(链表为空\n);return;}Node* temp head;printf(链表节点数据);while (temp ! NULL) {printf(%d , temp-data);temp temp-next;}printf(\n); }// 主函数测试链表操作 int main() {Node* head NULL; // 头节点insertAtEnd(head, 1);insertAtEnd(head, 2);insertAtEnd(head, 3);printList(head);deleteNode(head, 2);printList(head);deleteNode(head, 4);return 0; } Cpp代码整合 与C语言基本相同这里不再过多介绍 #include iostream// 定义链表节点结构 class Node { public:int data;Node* next;// 构造函数Node(int data) : data(data), next(nullptr) {} };// 链表类 class LinkedList { private:Node* head;public:// 构造函数LinkedList() : head(nullptr) {}// 析构函数用于释放链表内存~LinkedList() {Node* current head;while (current ! nullptr) {Node* next current-next;delete current;current next;}}// 在链表末尾插入新节点void insertAtEnd(int data) {Node* newNode new Node(data);if (head nullptr) {head newNode;} else {Node* temp head;while (temp-next ! nullptr) {temp temp-next;}temp-next newNode;}std::cout 已在链表末尾插入节点 data std::endl;}// 删除指定节点void deleteNode(int data) {if (head nullptr) {std::cout 链表为空 std::endl;return;}Node* temp head;Node* prev nullptr;if (temp ! nullptr temp-data data) {head temp-next;delete temp;std::cout 已删除节点 data std::endl;return;}while (temp ! nullptr temp-data ! data) {prev temp;temp temp-next;}if (temp nullptr) {std::cout 节点 data 不存在 std::endl;return;}prev-next temp-next;delete temp;std::cout 已删除节点 data std::endl;}// 修改指定节点的数据void modifyNode(int oldData, int newData) {if (head nullptr) {std::cout 链表为空 std::endl;return;}Node* temp head;while (temp ! nullptr) {if (temp-data oldData) {temp-data newData;std::cout 已将节点 oldData 修改为 newData std::endl;return;}temp temp-next;}std::cout 节点 oldData 不存在 std::endl;}// 遍历链表并打印节点数据void printList() {if (head nullptr) {std::cout 链表为空 std::endl;return;}Node* temp head;std::cout 链表节点数据;while (temp ! nullptr) {std::cout temp-data ;temp temp-next;}std::cout std::endl;} };int main() {LinkedList list;list.insertAtEnd(1);list.insertAtEnd(2);list.insertAtEnd(3);list.printList();list.deleteNode(2);list.printList();list.deleteNode(4);return 0; }
http://www.dnsts.com.cn/news/54734.html

相关文章:

  • 电子商务网站建设与维护李建忠气象网站建设的自查报告
  • 做游戏模板下载网站有哪些内容学做美食看哪个网站
  • 怎么用手机做网站编辑电子商城网站开发购物车
  • 晚上做设计挣钱的网站信誉好的龙岗网站设计
  • wordpress企业网站模版中国能建官网
  • 匿名ip访问网站受限wordpress插件途径
  • wordpress导入error 500达州seo
  • 自己想做一个网站宁波软件开发公司排名
  • wordpress 自定义内容类型 pan重庆seo俱乐部
  • php网站的数据库在哪网站开发的基础课程
  • 美的网站建设软件下载网站开发
  • 网站基本内容成品网站好还是自助建站好
  • 可以做试卷的网站古县网站建设
  • 自己做免费网站的流程wordpress 破解商场主题
  • 网站前台框架WordPress邀请码注册插件
  • 宝安商城网站建设如何进行网站的建设和维护
  • django做的电子商务网站ppt免费模板下载网站有哪些
  • 西安金融网站建设企业关键词优化推荐
  • 做俄罗斯生意网站重庆网站空间费用
  • 淘宝网站怎么做视频排版设计说明
  • 学习网站开发软件wordpress悬浮导航
  • 温州网站建设方案托管nas里安装wordpress
  • 第二章 营销型网站建设测验多语言网站难做么
  • 徽文化网站建设方案书高流量网站设计
  • 网站开发liucheng网站建设验收单
  • 企业网站开发公司有哪些学校网站管理与建设办法
  • 怎样在领英上做公司网站wordpress速度慢解决方法
  • 江苏住房与城乡建设部网站太原营销型网站建设
  • 免费做背景调查的网站天津市工程造价信息网
  • 怎么做淘客的网站工业设计产品分析案例