首页 > 其他分享 >12月20日总结

12月20日总结

时间:2025-01-10 18:55:26浏览次数:1  
标签:总结 12 20 int Queue front return data rear

今日学习了队列的相关操作:
定义:

define MAX_SIZE 100 // 假设队列最大容量为 100

typedef struct Queue {
int data[MAX_SIZE];
int front;
int rear;
} Queue;
初始化:
void initQueue(Queue *q) {
q->front = 0;
q->rear = 0;
}
入队操作:
void enqueue(Queue *q, int value) {
if (q->rear == MAX_SIZE - 1) {
printf("Queue Overflow\n");
return;
}
q->data[q->rear] = value;
q->rear++;
}
出队操作:
int dequeue(Queue *q) {
if (q->front == q->rear) {
printf("Queue Underflow\n");
return -1;
}
int value = q->data[q->front];
q->front++;
return value;
}
队列修改操作:
void modifyFront(Queue *q, int newValue) {
if (q->front == q->rear) {
printf("Queue is empty, cannot modify.\n");
return;
}
q->data[q->front] = newValue;
}
查找操作:
int peekFront(Queue *q) {
if (q->front == q->rear) {
return -1; // 也可根据实际需求返回其他标识值表示队列空
}
return q->data[q->front];
}

标签:总结,12,20,int,Queue,front,return,data,rear
From: https://www.cnblogs.com/Genghao11/p/18664523

相关文章

  • 2024-12-1-#{}与¥{}的区别-response
    {}与¥{}的区别response实现重定向response响应字符数据response响应字节数据以及导入工具类实现响应......
  • 12月14日总结
    今日学习了,单链表的基本操作:定义:typedefstructListNode{intdata;structListNode*next;}ListNode;初始化:voidinsertAtHead(ListNode**head,intvalue){ListNode*newNode=(ListNode*)malloc(sizeof(ListNode));newNode->data=value;......
  • 12月15日总结
    今日全身心投入到数据结构中双链表的学习,相较于之前接触的单链表,双链表有着独特的魅力与复杂性。概念上,双链表的每个节点不仅包含指向后继节点的指针(如同单链表),还增设了指向前驱节点的指针。这一设计使得链表在双向遍历上独具优势,无论是从表头向表尾推进,还是反向操作,都能轻松实现......
  • 12月16日总结
    今日学习了双链表的相关操作:一、创建双链表创建双链表的第一步是定义节点结构体,它包含数据域、指向前驱节点的指针prev和指向后继节点的指针next。//双链表节点结构体定义typedefstructDoubleListNode{intdata;structDoubleListNode*prev;structDoubleListNode......
  • 12月17日总结
    今日重点学习数据结构中的栈,它遵循后进先出原则,类似单端进出的储物箱,顶部是唯一的数据出入口,这使其在处理特定顺序问题上优势显著。学习中探究了栈的基本操作,初始化时用结构体表示栈,含存储数据的数组(或链表)与指示栈顶的指针top,初始top设为-1代表空栈。入栈是先让top加1......
  • 12月22日
    今日深入学习了Java中的注解(Annotations)机制,这是Java语言的一个重要特性,用于为程序元素(如类、方法、字段等)提供元数据。注解不直接影响程序的直接运行,但可以被编译器、工具或运行时环境读取和处理,从而实现各种强大的功能,如代码生成、依赖注入、测试等。注解是Java语言中的一种特......
  • 12月18日总结
    今日学习了栈的相关操作:初始化:defineMAX_SIZE100//假设栈的最大容量为100typedefstructStack{intdata[MAX_SIZE];inttop;}Stack;//栈的初始化函数voidinitStack(Stack*s){s->top=-1;}一、增-入栈(Push)入栈操作是向栈顶添加一个新元素,使其成为新的......
  • 12月19日总结
    今日深入学习了数据结构中的队列,它与之前所学的栈有着截然不同的特性。概念上,队列遵循先进先出(FIFO)原则,就如同日常生活中的排队场景,先到的人先接受服务,最先进入队列的元素最先被取出。它有队头(front)和队尾(rear)两个关键指针,分别用于标识队列的起始位置和末尾位置,元素从队尾进入,从......
  • 12月24日
    学习内容概述今日深入学习了Java中的泛型(Generics)机制,这是Java语言的一个重要特性,用于在编译时提供类型安全的集合和方法。泛型可以提高代码的复用性、可读性和安全性,是现代Java编程中不可或缺的一部分。泛型的基本概念泛型是一种在编译时提供类型检查的机制,允许在定义类、接口......
  • 12月15日
    今日重点学习了Java中的多线程编程,这是现代编程中实现并发和提高程序性能的关键技术。多线程可以让程序同时执行多个任务,充分利用计算机的多核处理器资源,提升程序的执行效率和响应速度。线程是程序执行的最小单位,是操作系统能够进行调度的最小单位。一个进程可以包含多个线程,这些......