在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;
}
“`
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/417497.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复