int main() { Queue queue; init_queue(&queue); int i ; //入队 for(i = 3; i <= 5; i++) { inqueue(&queue, i); } printQueue(&queue); //出队 for(i = 0; i < 2; i++) dequeue(&queue); printQueue(&queue); //入队 for(i = 11; i <= 12; i++) { inqueue(&queue, i); } printQueue(&queue); return 0; }
void floortraverse(TREE T){ TREE p; LinkQueue Q; initqueue(&Q);p=T; inqueue(&Q,p); while(queueempty(Q)){ outqueue(&Q,&p); print(p->data); if(p->left) inqueue(&Q,p->left); if(p->right) inqueue(&Q,p->right); } }
int main(int argc, char** argv) { int i,k,n,a,a1; QUE* Start = NULL;//начало очереди QUE* End = NULL;//конец очереди printf("How many elements? "); scanf("%d",&a); for(i=1; i<=a;i++) { printf("%d)Enter number: ",i); scanf("%d",n); inqueue(&Start,&End,n); } printf("How many elements in exit? "); scanf("%d",&a1); for(i=1; i<=a;i++) { dequeue(&End); } return (EXIT_SUCCESS); }
void parser_init(char * str){ //numbers = stack_char_new(CAPACITY); //operators = stack_char_new(CAPACITY/2); numbers = queue_new(CAPACITY); operators = queue_new(CAPACITY/2); if(!str) exit(-1); char *p = str; while(*p){ if ('0' <= *p && '9' >= *p) //push(numbers,*p); inqueue(numbers,*p); else if ('+' == *p) //push(operators,*p); inqueue(operators,*p); p++; } //exp = Exp_Int_new(pop(numbers)-'0'); exp = Exp_Int_new(dequeue(numbers)-'0'); }
void outdegree2(TREE T){ TREE p; LinkQueue Q; int flag1=0,flag2=0,n0=0,n1=0,n2=0; initqueue(&Q);p=T; inqueue(&Q,p); while(queueempty(Q)){ outqueue(&Q,&p); if(p->left) {inqueue(&Q,p->left);flag1=1;} if(p->right){inqueue(&Q,p->right);flag2=1;} if(flag1&&flag2) n2++; else if(!flag1&&!flag2) n0++; else n1++; flag1=flag2=0; } printf("出度为0的节点数目:%d\n",n0); printf("出度为1的节点数目:%d\n",n1); printf("出度为2的节点数目:%d\n",n2); }
int main(int argc, const char *argv[]) { char ch; char *p; Queue *queue = malloc_r(sizeof(Queue)); queue_init(queue); while((ch = getchar() != '\n')){ p = malloc(sizeof(char)); p = &ch; inqueue(queue, p); } while(!is_empty(queue)){ p = dequeue (queue); putchar(*p); } return 0; }