改单链表程序怎么设置

时间:2025-01-28 01:31:29 单机游戏

修改单链表的程序设置主要涉及以下步骤:

初始化链表

创建链表的头节点,并初始化其`next`指针为`NULL`。

插入节点

使用`PushBack`或`Insert`等函数将新节点插入到链表的尾部或指定位置。

查找节点

使用`Find`函数通过节点的值或位置来查找节点。

修改节点

找到目标节点后,通过直接访问其成员变量或通过指针修改其内容。

删除节点

使用`Erase`或`Delete`等函数删除指定位置的节点,并更新前一个节点的`next`指针。

打印链表

使用`PrintList`函数遍历链表并打印每个节点的值。

```c

include

include

// 定义单链表节点结构体

typedef struct ListNode {

int data;

struct ListNode *next;

} ListNode;

// 初始化链表

ListNode* Init_linklist() {

ListNode *head = (ListNode*)malloc(sizeof(ListNode));

head->data = 0;

head->next = NULL;

return head;

}

// 在链表尾部添加节点

void AddLetter_Tail(ListNode list, int data) {

ListNode *new_node = (ListNode*)malloc(sizeof(ListNode));

new_node->data = data;

new_node->next = NULL;

if (*list == NULL) {

*list = new_node;

} else {

ListNode *temp = *list;

while (temp->next != NULL) {

temp = temp->next;

}

temp->next = new_node;

}

}

// 查找节点

ListNode* Search_Site(ListNode* head, int site) {

ListNode *temp = head;

int count = 1;

while (temp != NULL) {

if (count == site) {

return temp;

}

temp = temp->next;

count++;

}

return NULL;

}

// 修改节点

void Correct(ListNode* head, int site, char letter) {

ListNode* q = Search_Site(head, site);

if (q != NULL) {

q->data = letter;

} else {

printf("Site %d not found in the list.\n", site);

}

}

// 打印链表

void PrintList(ListNode* head) {

ListNode* temp = head;

while (temp != NULL) {

printf("%d -> ", temp->data);

temp = temp->next;

}

printf("NULL\n");

}

// 获取链表长度

int Get_Length(ListNode* head) {

int length = 0;

ListNode* temp = head;

while (temp != NULL) {

length++;

temp = temp->next;

}

return length;

}

int main() {

ListNode* head = Init_linklist();

AddLetter_Tail(&head, 'H');

AddLetter_Tail(&head, 'i');

AddLetter_Tail(&head, 'x');

AddLetter_Tail(&head, '.');

PrintList(head);

printf("len: %d\n", Get_Length(head));

Correct(head, 6, '@');

Correct(head, 8, '@');

Correct(head, 3, '@');

PrintList(head);

printf("len: %d\n", Get_Length(head));

return 0;

}

```

在这个示例中,我们定义了一个单链表节点结构体`ListNode`,并实现了初始化链表、插入节点、查找节点、修改节点、删除节点和打印链表等基本操作。`Correct`函数用于修改指定位置的节点数据。通过这些步骤,你可以根据需要对单链表进行各种修改操作。