写一段单链表的创建、插入、删除、查找、显示
时间: 2023-05-28 10:08:09 浏览: 67
单链表是一种常见的数据结构,它由一个头节点和若干个数据节点构成。每个数据节点包括一个数据域和一个指向下一个节点的指针域。下面我们来看一下单链表的创建、插入、删除、查找和显示的实现方法。
创建单链表
创建单链表时,我们需要定义一个头节点,并将其指针域设置为NULL,表示该链表为空。然后我们可以逐个添加数据节点,将它们插入到链表的末尾。
//定义链表节点结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
//创建单链表
ListNode* createLinkedList(vector<int> nums) {
ListNode *head = new ListNode(0); //定义头节点
ListNode *p = head; //定义指针p
for (int i = 0; i < nums.size(); i++) {
ListNode *node = new ListNode(nums[i]); //创建新节点
p->next = node; //将新节点插入到链表末尾
p = node; //将指针p指向新节点
}
return head->next; //返回链表的第一个节点
}
插入节点
插入节点时,我们需要找到要插入的位置,然后将新节点插入到该位置。如果要插入到链表的末尾,我们可以将新节点插入到头节点的后面。
//插入节点
void insertNode(ListNode* head, int index, int val) {
ListNode *p = head;
for (int i = 0; i < index; i++) { //找到要插入的位置
p = p->next;
}
ListNode *node = new ListNode(val); //创建新节点
node->next = p->next; //将新节点插入到链表中
p->next = node;
}
删除节点
删除节点时,我们需要找到要删除的节点,然后将它从链表中删除。如果要删除的节点是头节点,我们需要特殊处理。
//删除节点
void deleteNode(ListNode* head, int val) {
ListNode *p = head;
while (p->next != NULL && p->next->val != val) { //找到要删除的节点
p = p->next;
}
if (p->next != NULL) { //删除节点
ListNode *node = p->next;
p->next = node->next;
delete node;
}
}
查找节点
查找节点时,我们需要从链表的头节点开始逐个查找,直到找到目标节点或者到达链表的末尾。
//查找节点
ListNode* searchNode(ListNode* head, int val) {
ListNode *p = head;
while (p != NULL) { //从头节点开始查找
if (p->val == val) {
return p; //找到目标节点
}
p = p->next;
}
return NULL; //未找到目标节点
}
显示链表
显示链表时,我们可以从头节点开始逐个输出节点的值。
//显示链表
void printLinkedList(ListNode* head) {
ListNode *p = head;
while (p != NULL) { //从头节点开始输出
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
这样,我们就实现了单链表的创建、插入、删除、查找和显示。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)