【学姐总结】C语言数据结构

十年开发一朝灵 2024-06-10 14:13:27

1. 数组

数组是C语言中一种基本的数据结构,它用于存储具有相同数据类型的元素集合。数组的大小在定义时确定,且在程序运行过程中不可改变。

int arr[10]; // 定义一个包含10个整数的数组初始化数组:int arr[5] = {1, 2, 3, 4, 5};访问数组元素:arr[index];修改数组元素:arr[index] = value;

2. 结构体

结构体是一种用户自定义的数据类型,它允许将不同类型的数据组合在一起。结构体在C语言中用于表示现实世界中的对象和实体。

struct Person { char name[50]; int age;};定义结构体变量:struct Person person1;访问结构体成员:person1.age;修改结构体成员:person1.age = 25;

3. 链表

链表是一种动态数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表可以灵活地插入和删除元素,且不受固定大小的限制。

struct Node { int data; struct Node *next;};创建链表节点:struct Node *node = (struct Node *)malloc(sizeof(struct Node));插入节点:node->next = current->next; current->next = node;删除节点:current->next = current->next->next;

4. 栈

栈是一种后进先出(LIFO)的数据结构,它允许在一端进行插入和删除操作。栈常用于解决括号匹配、逆序输出等问题。

int stack[100];int top = -1;入栈:stack[++top] = value;出栈:int value = stack[top--];判断栈空:top == -1

5. 队列

队列是一种先进先出(FIFO)的数据结构,它允许在一端进行插入操作,在另一端进行删除操作。队列常用于任务调度、缓冲区管理等场景。

int queue[100];int front = 0;int rear = -1;入队:queue[++rear] = value;出队:int value = queue[front++];判断队空:front > rear

6. 树

树是一种分层数据结构,它由节点组成,每个节点包含数据和指向子节点的指针。树常用于表示具有层次关系的数据,如文件系统、组织结构等。

struct TreeNode { int data; struct TreeNode *left; struct TreeNode *right;};创建树节点:struct TreeNode *node = (struct TreeNode *)malloc(sizeof(struct TreeNode));插入节点:node->left = current->left; current->left = node;遍历树: inorder(node->left); printf("%d ", node->data); inorder(node->right);

7. 图

图是一种复杂的数据结构,它由节点和边组成,用于表示对象之间的多对多关系。图可以有多种形式,如无向图、有向图、加权图等。

struct Graph { int numVertices; struct AdjList *adjLists;};创建图:struct Graph *graph = (struct Graph *)malloc(sizeof(struct Graph));添加边:addEdge(graph, src, dest);遍历图:DFS(graph, vertex);

总结

数据结构是C语言编程中非常重要的一部分,掌握数据结构的高级技巧对于成为一名优秀的C语言程序员至关重要。通过本篇文章,我们了解到了数组、结构体、链表、栈、队列、树和图等数据结构。

0 阅读:34

十年开发一朝灵

简介:感谢大家的关注