酒店电子商务网站建设,wordpress教程 gofair,乔拓云网站注册,平台类网站建设方案如何在C语言中实现链表、栈和队列等数据结构#xff1f;
在C语言中实现链表、栈和队列等数据结构需要定义相关的数据结构和操作。下面我会给出每种数据结构的简单实现示例。
链表#xff08;LinkedList#xff09;
链表是由一系列节点组成#xff0c;每个节点包含数据部… 如何在C语言中实现链表、栈和队列等数据结构
在C语言中实现链表、栈和队列等数据结构需要定义相关的数据结构和操作。下面我会给出每种数据结构的简单实现示例。
链表LinkedList
链表是由一系列节点组成每个节点包含数据部分和指向下一个节点的指针。 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) { printf(Memory error\n); return NULL; } newNode-data data; newNode-next NULL; return newNode; } // 在链表末尾添加节点 void appendNode(Node** head, int data) { Node* newNode createNode(data); if (!*head) { *head newNode; return; } Node* temp *head; while (temp-next) { temp temp-next; } temp-next newNode; } // 打印链表 void printList(Node* head) { Node* temp head; while (temp) { printf(%d , temp-data); temp temp-next; } printf(\n); } int main() { Node* head NULL; appendNode(head, 1); appendNode(head, 2); appendNode(head, 3); printList(head); return 0; }
栈Stack
栈是一种后进先出LIFO的数据结构。 c复制代码
#include stdio.h #include stdlib.h #define MAX_STACK_SIZE 100 typedef struct Stack { int top; unsigned capacity; int* array; } Stack; Stack* createStack(unsigned capacity) { Stack* stack (Stack*)malloc(sizeof(Stack)); if (!stack) { printf(Memory error\n); return NULL; } stack-top -1; stack-capacity capacity; stack-array (int*)malloc(stack-capacity * sizeof(int)); if (!stack-array) { printf(Memory error\n); return NULL; } return stack; } int isFull(Stack* stack) { return stack-top stack-capacity - 1; } int isEmpty(Stack* stack) { return stack-top -1; } void push(Stack* stack, int item) { if (isFull(stack)) { printf(Stack is full\n); return; } stack-array[stack-top] item; } int pop(Stack* stack) { if (isEmpty(stack)) { printf(Stack is empty\n); return INT_MIN; } return stack-array[stack-top--]; } int main() { Stack* stack createStack(MAX_STACK_SIZE); push(stack, 1); push(stack, 2); push(stack, 3); printf(%d\n, pop(stack)); printf(%d\n, pop(stack)); return 0; }
队列Queue
队列是一种先进先出FIFO的数据结构。 c复制代码
#include stdio.h #include stdlib.h #define MAX_QUEUE_SIZE 100 typedef struct Queue { int front, rear; unsigned capacity; int* array; } Queue; Queue* createQueue(unsigned capacity) { Queue* queue (Queue*)malloc(sizeof(Queue)); if (!queue) { printf(Memory error\n); return NULL; } queue-front queue-rear -1; queue-capacity capacity; queue-array (int*)malloc(queue-capacity * sizeof(int)); if (!queue-array) { printf(Memory error\n);