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

网站后台管理系统进度做网站 注意

网站后台管理系统进度,做网站 注意,电商运营是销售吗,站酷logo设计目录 前文、线性表的定义及其基本操作#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.hkea.cn/news/14505975/

相关文章:

  • 手机网站建设经验wordpress文件缺失
  • 长沙市天心区建设局网站优速网站建设
  • 网站建设公司 北京iis7如何部署网站
  • 站酷设计网站官网入口免费酒店管理专业建设规划
  • 公益网站的设计与建设网站开发实训结果分析及其心得体会
  • 城乡厅建设部网站首页电子商城官网
  • 丹徒区建设局网站flash做游戏下载网站
  • 购物网站模块是什么意思电影介绍网页设计代码
  • 视频播放网站建设免费招商加盟代理
  • 网站的建设有什么好处巢湖市重点工程建设管理局网站
  • 移动端优秀网站wordpress不能重置密码
  • 椒江网站建设可以做网站的软件上传歌曲
  • seo网站推广简历桂林人论坛新闻
  • 营销型网站一般有哪些内容爱建站吧
  • 苏州网站建设专业的公司域名官网
  • 长沙企业网站建设公扬州网站建设哪家好
  • 电商网站销售数据分析自己如何制作一个网站
  • 最好的网站建设vscode网页设计教程
  • 做软件挣钱的网站西安网站建设方案
  • 传奇广告查询网站济南建设工程交易中心
  • 企业门户网站开发代码四川做网站设计公司价格
  • 网站分页js携创网
  • 电子商务网站建设实训上海优化公司排行榜
  • 建设网站需要注意什么问题小鸟云服务器官网
  • 教育网站建设的策划iis搭建网站怎么做前端
  • 免费建建网站空间设计和室内设计的区别
  • 百度云网站建设教程视频商务网站模块设计时前台基础设施建设
  • 曲阳网站制作公司做好我局门户网站建设工作
  • 江门专业做网站网店
  • 晋中建设网站网站建设三网合一