用c语言与数据结构写的小程序
时间: 2024-09-12 17:09:36 浏览: 42
991“数据结构与C语言程序设计”考试大纲2021版.docx
用C语言结合数据结构编写的小程序是指使用C语言这一编程语言,结合数据结构的知识和技术来实现特定功能的程序。数据结构是计算机存储、组织数据的方式,它使得数据的检索和修改可以高效地进行。在C语言中,常见的数据结构包括数组、链表、栈、队列、树、图等。
下面举一个简单的例子,我们用C语言和链表数据结构来编写一个小程序,该程序实现了一个简单的链表,可以进行创建节点、插入节点、删除节点和打印链表的功能。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建一个新节点
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("内存分配失败\n");
exit(1);
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 在链表头部插入节点
void insertNodeHead(Node** head, int data) {
Node* newNode = createNode(data);
newNode->next = *head;
*head = newNode;
}
// 删除链表中的节点
void deleteNode(Node** head, int key) {
Node* temp = *head;
Node* prev = NULL;
// 如果头节点就是要删除的节点
if (temp != NULL && temp->data == key) {
*head = temp->next;
free(temp);
return;
}
// 查找要删除的节点
while (temp != NULL && temp->data != key) {
prev = temp;
temp = temp->next;
}
// 如果没有找到
if (temp == NULL) {
printf("未找到值为 %d 的节点\n", key);
return;
}
// 删除节点
prev->next = temp->next;
free(temp);
}
// 打印链表
void printList(Node* node) {
while (node != NULL) {
printf("%d -> ", node->data);
node = node->next;
}
printf("NULL\n");
}
// 主函数
int main() {
Node* head = NULL; // 创建一个空链表
// 插入节点
insertNodeHead(&head, 3);
insertNodeHead(&head, 2);
insertNodeHead(&head, 1);
printf("链表: ");
printList(head);
// 删除节点
deleteNode(&head, 2);
printf("删除值为2的节点后的链表: ");
printList(head);
// 释放链表内存
while (head != NULL) {
Node* temp = head;
head = head->next;
free(temp);
}
return 0;
}
```
这个小程序展示了如何在C语言中使用链表数据结构,包括节点的创建、链表的头部插入、删除节点以及打印链表的操作。这些是数据结构和算法基础内容,对于学习数据结构和提高编程能力都有很大帮助。
阅读全文