Data Structure: Queue in C Programming

Linear Data Structure Example

The below function written in C is used to perform the operations add, push, print and remove the string elements from the Queue memory management concept. In Computer Programming, data structure is the one among the popular memory management concepts. Queue is an algorithm to store data in and retrieve data from memory based on the popular memory concept of First-In-First-Out. The below example illustrate with the string can assist you to understand how to add, push, print and remove the string elements from the Queue

C Program to Add, Push, Print and Remove Elements


#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

#define MAX 100

char *p[MAX], *pop(void);
int spos = 0;
int rpos = 0;
void add(void), push(char *q), print(void), remove(void);


void add(void)
{
char s[256], *p;

do {
printf("spos %d: ", spos+1);
gets(s);
if(*s==0) {
break;
}
p = (char *) malloc(strlen(s)+1);
if(!p) {
printf("Out of memory.\n");
return;
}
strcpy(p, s);
if(*s) {
push(p);
}
} while(*s);
}

void print(void)
{
int t;

for(t=rpos; t < spos; ++t)
printf("%d. %s\n", t+1, p[t]);
}

void remove(void)
{
char *p;

if((p=pop())==NULL) {
return;
}
printf("%s\n", p);
}

void push(char *q)
{
if(spos==MAX) {
printf("List Full\n");
return;
}
p[spos] = q;
spos++;
}

char *pop(void)
{
if(rpos==spos) {
printf("No more.\n");
return NULL;
}
rpos++;
return p[rpos-1];
}

int main(void)
{
char s[80];
register int t;

for(t=0; t < MAX; ++t) {
p[t] = NULL;
}

while(1) {
printf("Add(A), Print(P), Remove(R), Quit(Q): ");
gets(s);
*s = toupper(*s);

switch(*s) {
case 'A':
add();
break;
case 'P':
print();
break;
case 'R':
remove();
break;
case 'Q':
exit(0);
}
}
return 0;
}


Related Topic C Program to Implement String Hash Table Associative Array
Linked List Queue in C Programming
What is the Difference between i386 and x86-64
How to Process XML Documents in Object Oriented Concepts
Biggest Hurdle of XML Schema

nScraps.com 2011   Privacy Policy  Terms of Service  Feedback