A bug fix.

This commit is contained in:
krahets
2023-12-19 21:55:57 +08:00
parent d9686e57dd
commit 9a5ab776d6
9 changed files with 30 additions and 34 deletions

View File

@ -66,11 +66,12 @@ void push(ArrayQueue *queue, int num) {
}
/* 出队 */
void pop(ArrayQueue *queue) {
int pop(ArrayQueue *queue) {
int num = peek(queue);
// 队首指针向后移动一位,若越过尾部则返回到数组头部
queue->front = (queue->front + 1) % queue->queCapacity;
queue->queSize--;
return num;
}
/* Driver Code */
@ -93,7 +94,7 @@ int main() {
printf("队首元素 peek = %d\r\n", peekNum);
/* 元素出队 */
pop(queue);
peekNum = pop(queue);
printf("出队元素 pop = %d ,出队后 queue = ", peekNum);
printArray(queue->nums, queue->queSize);

View File

@ -42,7 +42,7 @@ bool isEmpty(ArrayStack *stack) {
/* 入栈 */
void push(ArrayStack *stack, int num) {
if (stack->size == MAX_SIZE) {
printf("stack is full.\n");
printf("栈已满\n");
return;
}
stack->data[stack->size] = num;
@ -52,7 +52,7 @@ void push(ArrayStack *stack, int num) {
/* 访问栈顶元素 */
int peek(ArrayStack *stack) {
if (stack->size == 0) {
printf("stack is empty.\n");
printf("栈为空\n");
return INT_MAX;
}
return stack->data[stack->size - 1];
@ -60,10 +60,6 @@ int peek(ArrayStack *stack) {
/* 出栈 */
int pop(ArrayStack *stack) {
if (stack->size == 0) {
printf("stack is empty.\n");
return INT_MAX;
}
int val = peek(stack);
stack->size--;
return val;

View File

@ -67,12 +67,13 @@ int peek(LinkedListQueue *queue) {
}
/* 出队 */
void pop(LinkedListQueue *queue) {
int pop(LinkedListQueue *queue) {
int num = peek(queue);
ListNode *tmp = queue->front;
queue->front = queue->front->next;
free(tmp);
queue->queSize--;
return num;
}
/* 打印队列 */
@ -108,7 +109,7 @@ int main() {
printf("队首元素 peek = %d\r\n", peekNum);
/* 元素出队 */
pop(queue);
peekNum = pop(queue);
printf("出队元素 pop = %d ,出队后 queue = ", peekNum);
printLinkedListQueue(queue);

View File

@ -32,26 +32,16 @@ void delLinkedListStack(LinkedListStack *s) {
/* 获取栈的长度 */
int size(LinkedListStack *s) {
assert(s);
return s->size;
}
/* 判断栈是否为空 */
bool isEmpty(LinkedListStack *s) {
assert(s);
return size(s) == 0;
}
/* 访问栈顶元素 */
int peek(LinkedListStack *s) {
assert(s);
assert(size(s) != 0);
return s->top->val;
}
/* 入栈 */
void push(LinkedListStack *s, int num) {
assert(s);
ListNode *node = (ListNode *)malloc(sizeof(ListNode));
node->next = s->top; // 更新新加节点指针域
node->val = num; // 更新新加节点数据域
@ -59,13 +49,17 @@ void push(LinkedListStack *s, int num) {
s->size++; // 更新栈大小
}
/* 出栈 */
int pop(LinkedListStack *s) {
/* 访问栈顶元素 */
int peek(LinkedListStack *s) {
if (s->size == 0) {
printf("stack is empty.\n");
printf("栈为空\n");
return INT_MAX;
}
assert(s);
return s->top->val;
}
/* 出栈 */
int pop(LinkedListStack *s) {
int val = peek(s);
ListNode *tmp = s->top;
s->top = s->top->next;