在C语言中,数据结构是组织和存储数据的方式,通过使用不同的数据结构,可以更有效地管理和操作数据,下面是一些常见的数据结构及其在C语言中的应用:
(图片来源网络,侵删)1、数组(Array)
定义:一组相同类型的变量按照一定的顺序排列在一起。
应用:用于存储和访问大量相同类型的数据。
示例代码:
“`c
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("%d ", numbers[i]);
}
“`
2、链表(Linked List)
定义:由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
应用:动态分配内存,适用于频繁插入和删除元素的场景。
示例代码:
“`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));
newNode>data = data;
newNode>next = NULL;
return newNode;
}
void insertNode(Node** head, int data) {
Node* newNode = createNode(data);
newNode>next = *head;
*head = newNode;
}
void printList(Node* head) {
Node* current = head;
while (current != NULL) {
printf("%d ", current>data);
current = current>next;
}
}
int main() {
Node* head = NULL;
insertNode(&head, 1);
insertNode(&head, 2);
insertNode(&head, 3);
printList(head);
return 0;
}
“`
3、栈(Stack)
定义:一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。
应用:实现函数调用、表达式求值等场景。
示例代码:
“`c
#include <stdio.h>
#include <stdlib.h>
typedef struct Stack {
int top;
int capacity;
int* array;
} Stack;
Stack* createStack(int capacity) {
Stack* stack = (Stack*)malloc(sizeof(Stack));
stack>capacity = capacity;
stack>top = 1;
stack>array = (int*)malloc(stack>capacity * sizeof(int));
return stack;
}
void push(Stack* stack, int data) {
if (stack>top == stack>capacity 1) {
printf("Stack is full.
");
return;
}
stack>array[++stack>top] = data;
}
int pop(Stack* stack) {
if (stack>top == 1) {
printf("Stack is empty.
");
return 1;
}
return stack>array[stack>top];
}
int main() {
Stack* stack = createStack(5);
push(stack, 1);
push(stack, 2);
push(stack, 3);
printf("%d
", pop(stack)); // 输出:3
printf("%d
", pop(stack)); // 输出:2
return 0;
}
“`
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。