последний элемент очереди
Добавлено: 02 апр 2010, 14:52
(В случае совпадения вводимого символа с последним элементом очереди выводить размер очереди.)
как это реализовать? вот код:
как это реализовать? вот код:
Код: Выделить всё
struct queue{
char c;
queue *next;
}*p,*head,*tail;
void push(void);
void pop(void);
void show(void);
int size=0;
int main()
{
char key;
int done=false;
while(!done)
{
system("cls");
show();
printf("\nA)dd\nD)elete\nQ)uit\n");
key=getchar();
switch(toupper(key))
{
case 'A':
push();
break;
case 'D':
pop();
break;
case 'Q':
done=true;
break;
}
}
return 0;
}
void push()
{
printf("input:\n");
p=new queue;
scanf("%s",&p->c);
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
size++;
}
void pop()
{
p=head;
if(head!=0)
head=head->next;
if(head==NULL)
tail=0;
delete p;
}
void show()
{
p=head;
if(p==NULL)
printf("queue is empty\n");
else
printf("\nQueue\n");
while(p)
{
printf("%c\n",p->c);
p=p->next;
}
}