#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
typedef struct queue{
int data[SIZE];
int right;
int left;
} * pQueue;
pQueue creat(void) {
pQueue p = (pQueue) malloc (sizeof(pQueue));
p->left = 0;
p->right = -1;
return p;
}
void push (pQueue p, int value) {
if(p->right != SIZE){
p->right++;
p->data[p->right] = value;
}
if(p->right == SIZE - 1) {
printf("aaa\n");
p->right = -1;
}
}
void shift (pQueue p) {
if(p->left != p->right) {
p->left++;
}
if(p->left == p->right) {
}
if(p->left == SIZE) {
p->left = 0;
}
}
void show_list (pQueue p) {
for (int i = 0; i < SIZE; i++){
printf("%d ", p->data[i]);
}
printf("\n");
}
int main() {
pQueue p = creat();
push(p, 1);
push(p, 2);
push(p, 3);
shift(p);
push(p, 4);
push(p, 5);
push(p, 6);
push(p, 7);
push(p, 8);
show_list(p);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define SIZE 60
typedef struct Stack{
int data[SIZE];
int top;
} * pStack;
void push (pStack p, int value) {
if(p->top != SIZE){
p->top++;
p->data[p->top] = value;
}
}
void pop (pStack p) {
if(p->top != -1) {
p->top--;
}
}
pStack creat(void) {
pStack p = (pStack) malloc (sizeof(struct Stack));
p->top = -1;
return p;
}
void show_list (pStack p) {
for (int i = 0; i <= p->top; i++){
printf("%d ", p->data[i]);
}
printf("\n");
}
int main() {
pStack p = creat();
push(p, 1);
push(p, 2);
pop(p);
pop(p);
show_list(p);
}