2014-03-16 2 views
0

я пытался узнать реализацию массива из очереди в данном кодевходного размера очереди пользователя

#include <stdio.h> 

main() 
{ 
    int q[10]={0}, i, front=-1, rear=-1, max=10, n, item; 
    printf("\n" 
    "\tMENU\n" 
    "1.ENQUEUE\n" 
    "2.DEQUEUE\n" 
    "3.DISPLAY\n" 
    "4.EXIT\n" 
    ); 
    do 
    { 
    printf("\nEnter your choice\n"); 
    scanf("%d",&n); 
    switch(n) 
    { 
    case 1: 
     if(rear<max-1) 

    // .............so on 

они не просили пользователя ввести размер очереди, но уже определены это как 10.Is это только для этого случая или мы должны всегда определять его и не давать пользователю никакого контроля над размером очереди?

PS: любой хороший источник для изучения очереди и ее реализации в C для начинающих

+0

'main()' больше не C. Скажите 'int main()' и обязательно верните 0 для успеха или ненулевого для отказа. Включите предупреждения компилятора для проверки. Похоже, вы находитесь в том же классе, что и http://stackoverflow.com/questions/22433458/enforcing-range-in-an-array-in-c –

ответ

0

Если вы знаете размер очереди заранее, это лучший способ. В противном случае, вы можете попросить пользователя ввести нужный размер очереди и динамически выделять память из кучи:

int queue_size; 
printf("\nEnter queue size\n"); 
scanf("%d",&queue_size); 
int *q = malloc(queue_size * sizeof(int)); 
0

Является ли это только для этого случая или мы должны всегда определить его и не дать пользователю какой-либо контроль над размером очереди ?

№ Вы можете принять размер от пользователя. Используйте variable length arrays и не забудьте скомпилировать код в режиме C99 (-std=c99).

int size; 
scanf("%d", &size); 
int q[size]; 
memset(q, 0, sizeof(q)); 
-1

Структура данных книга Forozan и Gilberg очень хорошо для начинающих. Также вы можете использовать ppt с slideshare.com

+0

№ Array больше не является статической памятью. Исправьте свой ответ, иначе я буду понижать. – haccks

+0

спасибо @haccks для исправления ... –

+0

Спасибо за исправление, но все же он не отвечает на вопрос. – haccks

Смежные вопросы