用c语言自行编写算法,实现单链表的操作。 2)在单链表中删除元素4。 1)将元素列表(1,2,3,4,5)按序存放到单链表中。 3) 第一加上学号姓名,如"120223行05601张三”
时间: 2024-10-11 17:10:26 浏览: 31
在C语言中,我们可以自定义结构体表示单链表节点,并实现基本操作,包括创建、添加和删除元素。以下是简单的步骤:
1)首先定义单链表节点结构体:
```c
typedef struct Node {
int data;
struct Node* next;
} ListNode;
```
2)创建新节点并插入到链表头部:
```c
void insertAtFront(ListNode** head, int value) {
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->data = value;
newNode->next = *head;
*head = newNode;
}
```
3)将元素列表存入链表:
```c
void appendList(ListNode** head, int elements[], int size) {
for(int i=0; i<size; i++) {
insertAtFront(head, elements[i]);
}
}
// 示例:给定数组(1, 2, 3, 4, 5)
int arr[] = {1, 2, 3, 4, 5};
insertList(&head, arr, sizeof(arr)/sizeof(arr[0]));
```
4)删除特定值的节点:
```c
void deleteNode(ListNode** head, int value) {
ListNode* temp = *head, *prev = NULL;
if(temp && temp->data == value) {
*head = temp->next;
free(temp);
return;
}
while(temp && temp->data != value) {
prev = temp;
temp = temp->next;
}
if(temp) {
prev->next = temp->next;
free(temp);
}
}
```
5)打印链表,展示姓名学号形式:
```c
void printList(ListNode* head) {
printf("学号姓名:");
while(head) {
printf("%d %s", head->data, "姓名"); // 这里假设有一个函数或全局变量来存储姓名信息
head = head->next;
if(head) printf(", ");
}
printf("\n");
}
```
现在,你可以通过`deleteNode`函数删除元素4,然后使用`printList`来查看更新后的链表。
阅读全文