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

企业形象网站怎么做游戏代理平台一天结一次

企业形象网站怎么做,游戏代理平台一天结一次,淄博网站建设 很乱,网站建设小程序开发公司一、什么是链表? 链表是一种动态数据结构,由一系列“节点”组成。每个节点包含两个部分:数据域(data):用于存储数据。 指针域(next):指向下一个节点。 链表不像数组那样在…

一、什么是链表?
链表是一种动态数据结构,由一系列“节点”组成。每个节点包含两个部分:数据域(data):用于存储数据。
指针域(next):指向下一个节点。
链表不像数组那样在内存中连续存放,而是通过指针将零散的内存块串联起来使用。

二.单链表的结构定义

#include <stdio.h>
#include <stdlib.h>// 定义链表节点结构体
typedef struct Node {int data;            // 数据域struct Node* next;   // 指针域,指向下一个节点
} Node;

三.链表的基本操作及实现

1. 创建一个新节点

Node* createNode(int data) {Node* newNode = (Node*)malloc(sizeof(Node));if (!newNode) {printf("Memory allocation failed.\n");exit(1);}newNode->data = data;newNode->next = NULL;return newNode;
}

2. 头插法插入节点

void insertAtHead(Node** head, int data) {Node* newNode = createNode(data);newNode->next = *head;*head = newNode;
}

3. 尾插法插入节点

void insertAtTail(Node** head, int data) {Node* newNode = createNode(data);if (*head == NULL) {*head = newNode;return;}Node* temp = *head;while (temp->next != NULL) {temp = temp->next;}temp->next = newNode;
}

4. 在指定位置插入节点

void insertAtPosition(Node** head, int position, int data) {if (position < 0) {printf("Invalid position.\n");return;}if (position == 0) {insertAtHead(head, data);return;}Node* newNode = createNode(data);Node* temp = *head;for (int i = 0; temp != NULL && i < position - 1; i++) {temp = temp->next;}if (temp == NULL) {printf("Position out of bounds.\n");free(newNode);return;}newNode->next = temp->next;temp->next = newNode;
}

5. 删除节点(按值删除第一个匹配项)

void deleteNodeByValue(Node** head, int key) {Node* temp = *head;Node* prev = NULL;// 如果头节点就是要删除的节点if (temp != NULL && temp->data == key) {*head = temp->next;free(temp);return;}// 寻找要删除的节点while (temp != NULL && temp->data != key) {prev = temp;temp = temp->next;}if (temp == NULL) {printf("Value not found in list.\n");return;}prev->next = temp->next;free(temp);
}

6. 查找节点

Node* searchNode(Node* head, int key) {Node* temp = head;while (temp != NULL) {if (temp->data == key)return temp;temp = temp->next;}return NULL;
}

7. 打印链表

void printList(Node* head) {Node* temp = head;while (temp != NULL) {printf("%d -> ", temp->data);temp = temp->next;}printf("NULL\n");
}

8. 销毁链表

void destroyList(Node** head) {Node* current = *head;Node* next;while (current != NULL) {next = current->next;free(current);current = next;}*head = NULL;
}

完整测试代码

int main() {Node* head = NULL;insertAtTail(&head, 10);insertAtTail(&head, 20);insertAtHead(&head, 5);insertAtPosition(&head, 2, 15); // 在位置2插入15printf("链表内容:\n");printList(head);printf("\n删除值为20的节点:\n");deleteNodeByValue(&head, 20);printList(head);printf("\n查找值为15的节点:\n");Node* found = searchNode(head, 15);if (found)printf("找到值 %d\n", found->data);elseprintf("未找到\n");destroyList(&head);return 0;
}

输出结果

链表内容:
5 -> 10 -> 15 -> 20 -> NULL删除值为20的节点:
5 -> 10 -> 15 -> NULL查找值为15的节点:
找到值 15

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

相关文章:

  • 红孩子母婴网站开发背景广告传媒公司
  • 男科医院收费一览表随州seo
  • 职友集 一家做职业点评的网站网络推广可做哪些方面
  • 设计网站 behance哪些网站可以发广告
  • 义乌北苑编程网站开发公司商品营销推广的方法有哪些
  • 广东网站建设找哪家想学管理方面的培训班
  • 徐州泉山区建设局网站汕头seo计费管理
  • 做网站的支付写软文一篇多少钱合适
  • vi设计策划公司seo外包多少钱
  • 深圳设计网站排行百度网盘人工申诉电话
  • 做窗帘店的网站制作网站的平台
  • 甘肃找人做网站多少钱代写软文费用全网天下实惠
  • 律师做网站费用关键词数据分析工具有哪些
  • 泰州做直销会员结算管理网站自制网站教程
  • 连江网站建设成功营销案例分享
  • 网站手机版建设aso优化贴吧
  • 陕西省建设网页企业信息电商关键词seo排名
  • 手机营销网站建设百度快照推广一年要多少钱
  • 深圳保障性住房有哪些神马搜索seo优化排名
  • 金融网站如何做设计搜索引擎优化包括哪些
  • 怎样做58网站巨量算数数据分析入口
  • 外贸网站 seo厦门站长优化工具
  • 网站建设的目的及功能定位今日国际新闻事件
  • java web做网站的优势淘宝关键词搜索量查询
  • 在网站做直播国内新闻热点事件
  • 美国做爰直播网站外包公司有哪些
  • 网站制作前言公司山西网络推广
  • 网站开发交接清单自媒体seo优化
  • 网站被k了怎么做关键词网站
  • wordpress去水印插件对网站提出的优化建议