c语言生成一个代码 :建立双向链表,并实现其插入和删除操作。
时间: 2024-06-04 09:13:08 浏览: 107
可以的,这是一个很基础的编程问题。以下是一个 c 语言的双向链表代码实现:
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
struct Node* prev;
};
struct Node* head;
struct Node* GetNewNode(int x) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = x;
newNode->prev = NULL;
newNode->next = NULL;
return newNode;
}
void InsertAtHead(int x) {
struct Node* newNode = GetNewNode(x);
if (head == NULL) {
head = newNode;
return;
}
head->prev = newNode;
newNode->next = head;
head = newNode;
}
void Delete(int x) {
struct Node* temp = head;
while (temp != NULL) {
if (temp->data == x) {
if (temp == head && temp->next == NULL) {
head = NULL;
} else if (temp == head) {
head = head->next;
head->prev = NULL;
} else if (temp->next == NULL) {
temp->prev->next = NULL;
} else {
temp->prev->next = temp->next;
temp->next->prev = temp->prev;
}
free(temp);
return;
}
temp = temp->next;
}
}
int main() {
head = NULL;
InsertAtHead(2);
InsertAtHead(4);
InsertAtHead(6);
InsertAtHead(8);
Delete(6);
return 0;
}
阅读全文
相关推荐















