线性链表的创建、增加、删除、修改、查询等操作,
时间: 2023-04-02 07:03:53 浏览: 132
线性链表是一种常见的数据结构,可以用来存储一系列数据。创建链表时,需要先定义一个链表节点结构体,包括数据域和指针域。增加节点时,可以在链表头或尾部插入节点,也可以在指定位置插入节点。删除节点时,需要先找到要删除的节点,然后将其前一个节点的指针指向其后一个节点,再释放要删除的节点的内存空间。修改节点时,需要先找到要修改的节点,然后修改其数据域的值。查询节点时,需要遍历整个链表,查找符合条件的节点。以上就是线性链表的基本操作。
相关问题
线性链表的创建、增加、删除、修改、查询等操作,代码
我可以回答这个问题。线性链表是一种常见的数据结构,可以用来存储一系列数据。下面是一些常见的操作代码:
1. 创建链表
typedef struct Node {
int data;
struct Node *next;
} Node;
Node *createList() {
Node *head = (Node *)malloc(sizeof(Node));
head->next = NULL;
return head;
}
2. 增加节点
void addNode(Node *head, int data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = head->next;
head->next = newNode;
}
3. 删除节点
void deleteNode(Node *head, int data) {
Node *p = head->next;
Node *pre = head;
while (p != NULL) {
if (p->data == data) {
pre->next = p->next;
free(p);
return;
}
pre = p;
p = p->next;
}
}
4. 修改节点
void modifyNode(Node *head, int oldData, int newData) {
Node *p = head->next;
while (p != NULL) {
if (p->data == oldData) {
p->data = newData;
return;
}
p = p->next;
}
}
5. 查询节点
Node *findNode(Node *head, int data) {
Node *p = head->next;
while (p != NULL) {
if (p->data == data) {
return p;
}
p = p->next;
}
return NULL;
}
以上就是线性链表的常见操作代码。
C++线性链表的创建、增加、删除、修改、查询等操作,代码
我可以回答这个问题。以下是 C 线性链表的创建、增加、删除、修改、查询等操作的代码示例:
// 定义链表节点结构体
typedef struct Node {
int data; // 节点数据
struct Node *next; // 指向下一个节点的指针
} Node;
// 创建链表
Node *createList() {
Node *head = (Node *)malloc(sizeof(Node)); // 创建头节点
head->next = NULL; // 头节点的指针指向 NULL
return head;
}
// 在链表末尾添加节点
void addNode(Node *head, int data) {
Node *newNode = (Node *)malloc(sizeof(Node)); // 创建新节点
newNode->data = data; // 设置新节点的数据
newNode->next = NULL; // 新节点的指针指向 NULL
Node *p = head;
while (p->next != NULL) { // 找到链表末尾
p = p->next;
}
p->next = newNode; // 将新节点添加到链表末尾
}
// 删除链表中指定节点
void deleteNode(Node *head, int data) {
Node *p = head->next;
Node *pre = head;
while (p != NULL) {
if (p->data == data) { // 找到要删除的节点
pre->next = p->next; // 将前一个节点的指针指向下一个节点
free(p); // 释放要删除的节点的内存
return;
}
pre = p;
p = p->next;
}
}
// 修改链表中指定节点的数据
void modifyNode(Node *head, int oldData, int newData) {
Node *p = head->next;
while (p != NULL) {
if (p->data == oldData) { // 找到要修改的节点
p->data = newData; // 修改节点的数据
return;
}
p = p->next;
}
}
// 查询链表中指定节点的数据
int queryNode(Node *head, int data) {
Node *p = head->next;
while (p != NULL) {
if (p->data == data) { // 找到要查询的节点
return p->data; // 返回节点的数据
}
p = p->next;
}
return -1; // 没有找到节点,返回 -1
}
阅读全文