I want to create a circular queue using a linked list. I also want to create many instances of that data structure (queue) without repeating the code.
This is what iI came up with:
I compiled this code using DevC++ and it works fine, but when I compile it using MS Visual Studio 2013, it gave me an exception "Access violation writing location...." so:
Access violation writing location....
I am very sure my code is not that good.
I want to create a circular queue using linked list. I also want to create many instances of that data structure (queue) without repeating the code.
This is what i came up with:
I compiled this code using DevC++ and it works fine, but when I compile it using MS Visual Studio 2013, it gave me an exception "Access violation writing location...." so I am very sure my code is not that good.
I want to create a circular queue using a linked list. I also want to create many instances of that data structure (queue) without repeating the code.
This is what I came up with:
I compiled this code using DevC++ and it works fine, but when I compile it using MS Visual Studio 2013, it gave me an exception:
Access violation writing location....
I am very sure my code is not that good.
I want to create a circular queue using linked list,also i. I also want to create instancemany instances of that data structure(queue) not just one queue, many queues without repeating the code. this
This is what i came up with...:
Is there any gooda better way to do this? I kinda feel that my code is complicated. I am new to C programming and I only learned basics about queues and linked list.so i I don't know even my code is 100% right or an elegant code.
I compiled this code using DevC++ and it works fine, but when I compile it using MS Visual Studio 2013, it gave me an exception "Access violation writing location....". so iI am very sure my code is not that good. Please help me out. Thanks
I want to create a circular queue using linked list,also i want to create instance of that data structure(queue) not just one queue, many queues without repeating the code. this is what i came up with...
Is there any good way to do this? I kinda feel my code is complicated. I am new to C programming and I only learned basics about queues and linked list.so i don't know even my code is 100% right or an elegant code. I compiled this code using DevC++ works fine, but when I compile it using MS Visual Studio 2013, it gave me an exception "Access violation writing location....". so i am very sure my code is not that good. Please help me out. Thanks
I want to create a circular queue using linked list. I also want to create many instances of that data structure(queue) without repeating the code.
This is what i came up with:
Is there a better way to do this? I feel that my code is complicated. I am new to C programming and I only learned basics about queues and linked list. I don't know even my code is 100% right or an elegant code.
I compiled this code using DevC++ and it works fine, but when I compile it using MS Visual Studio 2013, it gave me an exception "Access violation writing location...." so I am very sure my code is not that good.
Circular Queue using Linked List
I want to create a circular queue using linked list,also i want to create instance of that data structure(queue) not just one queue, many queues without repeating the code. this is what i came up with...
#include <stdio.h>
#include <stdlib.h>
struct queue
{
int info;
struct queue *next;
struct queue *front;
struct queue *rear;
};
void create(struct queue **q)
{
(*q)->next = 0;
(*q)->front = 0;
(*q)->rear = 0;
}
struct queue* makenode(int item){
struct queue* p = (struct queue*)malloc(sizeof (struct queue));
if (p) p->info = item;
return p;
}
void addLast(struct queue **q, int item){
struct queue* p = makenode(item);
if ((*q)->front == NULL){
(*q)->front = (*q)->rear = p;
(*q)->front->next = (*q)->front;
(*q)->rear->next = (*q)->rear;
}
else
{
(*q)->rear->next = p;
p->next = (*q)->front;
(*q)->rear = p;
}
}
int delFirst(struct queue **q){
struct queue *p = (*q)->front;
if ((*q)->front == 0)
printf("\nEmpty Queue\n");
else
{
int temp = (*q)->front->info;
if (((*q)->front->next) != ((*q)->front))
{
(*q)->front = (*q)->front->next;
(*q)->rear->next = (*q)->front;
}
else
{
(*q)->front = 0;
}
return temp;
}
free(p);
}
void main()
{
struct queue *premium, *normal;
create(&premium);
create(&normal);
addLast(&premium, 5);
addLast(&premium, 10);
addLast(&normal, 20);
addLast(&normal, 30);
printf("%i\n", delFirst(&premium));
printf("%i\n", delFirst(&premium));
delFirst(&premium);
printf("%i\n", delFirst(&normal));
printf("%i\n", delFirst(&normal));
delFirst(&normal);
getch();
}
Is there any good way to do this? I kinda feel my code is complicated. I am new to C programming and I only learned basics about queues and linked list.so i don't know even my code is 100% right or an elegant code. I compiled this code using DevC++ works fine, but when I compile it using MS Visual Studio 2013, it gave me an exception "Access violation writing location....". so i am very sure my code is not that good. Please help me out. Thanks