能说语言网
首页 语言知识 正文

套路对象的C语言

来源:能说语言网 2024-07-10 21:58:40

  C语言是一种广泛应用于统编程和嵌入式统开发的高级编程语言能说语言网。它是一门非常底的语言,因此在实现一些套路对象时,C语言可以发挥出其强大的优原文www.dzhongheng.com

套路对象的C语言(1)

一、链表

  链表是一种常见的数结构,它可以在运行时动态地分内存,非常适于需要繁插入和除元素的场景xOB。在C语言中,链表可以用指针来实现www.dzhongheng.com能说语言网。下面是一个简单的链表示

  ```

  typedef struct node {

int data;

struct node *next;

  } Node;

  Node *create_node(int data) {

  Node *node = (Node *)malloc(sizeof(Node));

  node->data = data;

node->next = NULL;

  return node;

  }

  void insert_node(Node **head, int data) {

  Node *node = create_node(data);

  node->next = *head;

  *head = node;

}

void delete_node(Node **head, int data) {

Node *prev = NULL;

  Node *curr = *head;

while (curr != NULL) {

  if (curr->data == data) {

  if (prev == NULL) {

  *head = curr->next;

  } else {

  prev->next = curr->next;

  }

  free(curr);

  return;

  }

  prev = curr;

  curr = curr->next;

  }

}

```

二、栈

栈是一种后进先出的数结构,常用于表达式求值、函数调用和递归等场景原文www.dzhongheng.com。在C语言中,栈可以用数组或指针来实现www.dzhongheng.com能说语言网。下面是一个简单的栈示

  ```

#define MAX_STACK_SIZE 100

  typedef struct stack {

int top;

  int data[MAX_STACK_SIZE];

  } Stack;

  void push(Stack *stack, int data) {

  if (stack->top < MAX_STACK_SIZE) {

  stack->data[stack->top++] = data;

  }

  }

int pop(Stack *stack) {

  if (stack->top > 0) {

  return stack->data[--stack->top];

}

  return -1;

  }

int peek(Stack *stack) {

  if (stack->top > 0) {

  return stack->data[stack->top - 1];

}

  return -1;

  }

  int is_empty(Stack *stack) {

  return stack->top == 0;

  }

  ```

套路对象的C语言(2)

三、队列

  队列是一种先进先出的数结构,常用于息传递和任务调度等场景dzhongheng.com。在C语言中,队列可以用数组或指针来实现能.说.语.言.网。下面是一个简单的队列示

```

#define MAX_QUEUE_SIZE 100

  typedef struct queue {

  int head;

  int tail;

  int data[MAX_QUEUE_SIZE];

} Queue;

  void enqueue(Queue *queue, int data) {

if (queue->tail < MAX_QUEUE_SIZE) {

  queue->data[queue->tail++] = data;

}

  }

  int dequeue(Queue *queue) {

  if (queue->head tail) {

  return queue->data[queue->head++];

}

  return -1;

  }

  int is_empty(Queue *queue) {

  return queue->head == queue->tail;

  }

  ```

我说两句
0 条评论
请遵守当地法律法规
最新评论

还没有评论,快来做评论第一人吧!
相关文章
最新更新
最新推荐