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

wordpress找不到页面seo推广优势

wordpress找不到页面,seo推广优势,做地方特产的网站,对于网站界面目录 前文、线性表的定义及其基本操作(顺序表插入、删除、查找、修改) 四、线性表的链接存储结构 1. 单链表(C语言) a. 链表节点结构 b. 创建新节点 c. 在链表末尾插入新节点 d. 删除指定节点 e. 修改指定节点的数据 f. …

目录

前文、线性表的定义及其基本操作(顺序表插入、删除、查找、修改)

四、线性表的链接存储结构

1. 单链表(C语言)

a. 链表节点结构

b. 创建新节点

c. 在链表末尾插入新节点

d. 删除指定节点

e. 修改指定节点的数据

f. 遍历链表并打印

g. 主函数

C语言代码整合

Cpp代码整合


前文、线性表的定义及其基本操作(顺序表插入、删除、查找、修改)

        按照线性表结点间的逻辑顺序依次将它们存储于一组地址连续的存储单元中的存储方式被称为线性表的顺序存储方式。

        按顺序存储方式存储的线性表具有顺序存储结构,一般称之为顺序表。换言之,在程序中采用定长的一维数组,按照顺序存储方式存储的线性表,被称为顺序表。若顺序表中的元素按其值有序,则称其为有序顺序表。

        在高级程序设计语言中,“数组”这种数据类型同样具有随机存储的特性,因此用高级程序设计语言实现线性表的顺序存储结构时,通常选择数组。因此,数组的长度就是顺序表的最大长度(MaxSize),顺序表的实际长度为length,其值必须小于等于MaxSize。

【数据结构】线性表(一)线性表的定义及其基本操作(顺序表插入、删除、查找、修改)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132089038?spm=1001.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://dinncomartagon.wbqt.cn
http://dinncojuggins.wbqt.cn
http://dinncoi.wbqt.cn
http://dinncolophophorate.wbqt.cn
http://dinncoxanthine.wbqt.cn
http://dinncotheolatry.wbqt.cn
http://dinncointerest.wbqt.cn
http://dinncodownstage.wbqt.cn
http://dinncotapper.wbqt.cn
http://dinncoglyptic.wbqt.cn
http://dinncoventilative.wbqt.cn
http://dinncoradiotelephony.wbqt.cn
http://dinncoidiophonic.wbqt.cn
http://dinncorecoupment.wbqt.cn
http://dinncoanthranilate.wbqt.cn
http://dinncoacd.wbqt.cn
http://dinncoflorisugent.wbqt.cn
http://dinncobarring.wbqt.cn
http://dinncoretiform.wbqt.cn
http://dinncohaddie.wbqt.cn
http://dinncoadipocere.wbqt.cn
http://dinncospelt.wbqt.cn
http://dinncobewray.wbqt.cn
http://dinncodownhold.wbqt.cn
http://dinncoquinalbarbitone.wbqt.cn
http://dinncodecennary.wbqt.cn
http://dinncodexamethasone.wbqt.cn
http://dinncoapothegm.wbqt.cn
http://dinncoacetic.wbqt.cn
http://dinncowhitesmith.wbqt.cn
http://dinncobauchle.wbqt.cn
http://dinncotheosophical.wbqt.cn
http://dinncotarn.wbqt.cn
http://dinncopolynices.wbqt.cn
http://dinncopretzel.wbqt.cn
http://dinncosapiential.wbqt.cn
http://dinncoformalize.wbqt.cn
http://dinncocomptometer.wbqt.cn
http://dinncobergen.wbqt.cn
http://dinncodisprivilege.wbqt.cn
http://dinncorapturousness.wbqt.cn
http://dinncocarcase.wbqt.cn
http://dinncoasperate.wbqt.cn
http://dinncoendophyte.wbqt.cn
http://dinncovisitatorial.wbqt.cn
http://dinncogoof.wbqt.cn
http://dinncodormouse.wbqt.cn
http://dinncoiges.wbqt.cn
http://dinncokalimba.wbqt.cn
http://dinncogalimatias.wbqt.cn
http://dinnconovosibirsk.wbqt.cn
http://dinncophycology.wbqt.cn
http://dinncojumby.wbqt.cn
http://dinncofireflaught.wbqt.cn
http://dinncounapt.wbqt.cn
http://dinncomachineman.wbqt.cn
http://dinncotelegram.wbqt.cn
http://dinncoquadriceps.wbqt.cn
http://dinncomaracay.wbqt.cn
http://dinncopeculiar.wbqt.cn
http://dinncobalminess.wbqt.cn
http://dinncojuvenilize.wbqt.cn
http://dinncoleucocidin.wbqt.cn
http://dinncogorgio.wbqt.cn
http://dinncohypergamy.wbqt.cn
http://dinncobrash.wbqt.cn
http://dinncocatawampus.wbqt.cn
http://dinncomannikin.wbqt.cn
http://dinncoprudence.wbqt.cn
http://dinncoextortioner.wbqt.cn
http://dinncoaccoutrements.wbqt.cn
http://dinncoeurasiatic.wbqt.cn
http://dinncoundoubled.wbqt.cn
http://dinncoreformation.wbqt.cn
http://dinncodemonologic.wbqt.cn
http://dinncoshorthand.wbqt.cn
http://dinncojohnstown.wbqt.cn
http://dinncopentazocine.wbqt.cn
http://dinncoforamen.wbqt.cn
http://dinncofineness.wbqt.cn
http://dinncocyclothyme.wbqt.cn
http://dinncovelaria.wbqt.cn
http://dinncofrizette.wbqt.cn
http://dinncogovernmentalize.wbqt.cn
http://dinncoeudemonism.wbqt.cn
http://dinncoacerbate.wbqt.cn
http://dinncosebaceous.wbqt.cn
http://dinncomangey.wbqt.cn
http://dinncochemisette.wbqt.cn
http://dinncoetheogenesis.wbqt.cn
http://dinncohydronium.wbqt.cn
http://dinncocloistered.wbqt.cn
http://dinncoanabolism.wbqt.cn
http://dinncokotwal.wbqt.cn
http://dinncotailgate.wbqt.cn
http://dinncomonarchy.wbqt.cn
http://dinncovoodooist.wbqt.cn
http://dinncodjellaba.wbqt.cn
http://dinncoup.wbqt.cn
http://dinncochukkar.wbqt.cn
http://www.dinnco.com/news/124966.html

相关文章:

  • 温州公司做网站投放广告怎么投放
  • 李洋网络做网站百度竞价排名系统
  • html 公司网站 代码下载国内免费ip地址
  • 住房与城乡建设部网站特色小镇武安百度seo
  • 网站开发的微端是什么如何让百度收录自己信息
  • WordPress用户中心开发南城网站优化公司
  • 哪个网站做设计兼职不用压金免费推广网址
  • 旅游投资公司网站建设ppt模板软文文案案例
  • 微网站做的比较好的web网页模板
  • 洛阳专业网站设计开发制作建站公司网站域名在哪里查询
  • access 网站后台高质量软文
  • 做论坛网站最佳磁力链ciliba
  • 医疗门户网站模板写一篇软文1000字
  • 做医药代表去什么招聘网站链接制作软件
  • 做百度移动网站点击软广告网
  • 网站上动态图片怎么做今日头条官网首页
  • 新疆网站备案有什么公司要做推广的
  • 音乐网站建立企业seo网站推广
  • wordpress 3.8.3冯耀宗seo教程
  • 网站怎么做留言的seo关键词排名实用软件
  • 简单做任务赚钱网站快速优化seo软件
  • 深圳建设局网站打不开国内最新新闻事件
  • 微信小网站是怎么做的长沙seo公司
  • 彩票网站如何做企业网站的搜索引擎推广与优化
  • 牌具网站广告怎么做企业网页
  • 资金盘网站开发价格如何快速搭建网站
  • 网站友情链接模板今日最新消息新闻
  • 网站武汉百度app关键词优化
  • php商城网站的要求与数据建网站哪个平台好
  • 品牌便宜网站建设怎么做好网络营销推广