typedef struct Node { int data; struct Node* left, *right; } Node;

typedef struct Graph { int vertices; int** adjMatrix; } Graph;

typedef struct Queue { int* arr; int front, rear; } Queue;

typedef struct Node { int data; struct Node* next; } Node;

void addEdge(Graph* graph, int src, int dest) { graph->adjMatrix[src][dest] = 1; }

void push(Stack* stack, int data) { stack->arr[++stack->top] = data; }

Data structures are a way of organizing and storing data in a computer so that it can be efficiently accessed, modified, and manipulated. In C programming, data structures are used to store and manage large amounts of data, such as arrays, linked lists, stacks, queues, trees, and graphs.