操作系统链表操作代码
时间: 2023-07-10 14:22:23 浏览: 51
以下是链表操作的基本代码,包括创建链表、插入节点、删除节点和遍历链表:
定义链表节点结构体:
```c
typedef struct Node {
int data;
struct Node *next;
} Node;
```
创建链表:
```c
Node* createList(int arr[], int n) {
Node *head = NULL, *tail = NULL;
for (int i = 0; i < n; i++) {
Node *node = (Node*)malloc(sizeof(Node));
node->data = arr[i];
node->next = NULL;
if (head == NULL) {
head = tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
```
插入节点:
```c
void insertNode(Node **head, int data) {
Node *node = (Node*)malloc(sizeof(Node));
node->data = data;
node->next = *head;
*head = node;
}
```
删除节点:
```c
void deleteNode(Node **head, int data) {
Node *prev = NULL, *curr = *head;
while (curr != NULL && curr->data != data) {
prev = curr;
curr = curr->next;
}
if (curr != NULL) {
if (prev == NULL) {
*head = curr->next;
} else {
prev->next = curr->next;
}
free(curr);
}
}
```
遍历链表:
```c
void traverseList(Node *head) {
Node *curr = head;
while (curr != NULL) {
printf("%d ", curr->data);
curr = curr->next;
}
printf("\n");
}
```