Click here to Skip to main content
15,890,609 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralLinked list headache in VC++. Please help Pin
Sreekanth Muralidharan7-Nov-04 22:03
Sreekanth Muralidharan7-Nov-04 22:03 
GeneralRe: Linked list headache in VC++. Please help Pin
Uwe Keim7-Nov-04 22:35
sitebuilderUwe Keim7-Nov-04 22:35 
GeneralRe: Linked list headache in VC++. Please help Pin
Sreekanth Muralidharan7-Nov-04 23:17
Sreekanth Muralidharan7-Nov-04 23:17 
GeneralRe: Linked list headache in VC++. Please help Pin
FearlessBurner7-Nov-04 23:37
FearlessBurner7-Nov-04 23:37 
GeneralThanks to all... Pin
Sreekanth Muralidharan8-Nov-04 18:04
Sreekanth Muralidharan8-Nov-04 18:04 
GeneralRe: Linked list headache in VC++. Please help Pin
John R. Shaw8-Nov-04 12:40
John R. Shaw8-Nov-04 12:40 
GeneralMy Own Linked List Pin
Sreekanth Muralidharan8-Nov-04 19:35
Sreekanth Muralidharan8-Nov-04 19:35 
GeneralRe: My Own Linked List Pin
Sreekanth Muralidharan8-Nov-04 22:33
Sreekanth Muralidharan8-Nov-04 22:33 
Hello
See the code in C++ for linked list implementation of a queue.
<code> #include <iostream.h>
#include <stdlib.h>
#include <process.h>
#include <conio.h>
#include <dos.h>

struct queuelist
{
int intData;
int valid;
struct queuelist* next;

};
struct queuelist *head, *tail;

class CNode
{
private:
struct queuelist* queue;
public:
int AddToQueue(int);
int PopFromQueue();
int DeleteQueue();
void DisplayQueue();


};


void menu();

void menu()
{

textcolor(WHITE);
cout<<" Queue Manipulation Menu"<<endl;
cout<<"........................"<<endl<<endl;
cout<<"1. Add member to queue."<<endl;
cout<<"2. Extract next member."<<endl;
cout<<"3. Delete whole queue."<<endl;
cout<<"4. Help"<<endl;
cout<<"5. Display queue contents."<<endl;
cout<<"6. Quit."<<endl;



}

void main()
{

clrscr();
int data;
int option;
CNode node;
while(1)
{
menu();
cout<<"OPTION: ";
cin>>option;
cout<<endl;
switch(option)
{
case 1:
cout<<"Member: ";
cin>>data;
if(node.AddToQueue(data)==-1)
cout<<"Could not add.."<<endl;
else
cout<<"Added.."<<endl;
break;

case 2:
int pop=0;
clrscr();
cout<<"Extract next member."<<endl;
pop = node.PopFromQueue();
if(pop!=-1)
cout<<node.PopFromQueue();
break;
case 3:
clrscr();
node.DeleteQueue();
break;

case 4:
cout<<"Under Construction."<<endl;
break;
case 5:
clrscr();
cout<<"Queue Contents."<<endl;
node.DisplayQueue();
break;

case 6:
exit(0);

default:
textcolor(RED);
cout<<"Invalid Option.."<<endl;
break;
}

}
getch();

}

int CNode::AddToQueue(int data)
{
struct queuelist* q;
struct queuelist* temp;
q = head;
if(q == NULL)
{
cout<<"First member in queue."<<endl;
temp = (struct queuelist*)malloc(sizeof(struct queuelist));
if(temp == NULL)
{
textcolor(RED);
cout<<"Not enough memory. Stopping..."<<endl;
return -1;
}
else
{
temp->intData = data;
temp->next=NULL;
temp->valid=1;
q->next = temp;
head = temp;
tail = temp;
q = temp;


}


}
else
{
while(q->next!=NULL) q=q->next;

temp = (struct queuelist*)malloc(sizeof(struct queuelist));
if(temp == NULL)
{
textcolor(RED);
cout<<"Not enough memory. Quitting..."<<endl;
return -1;
}
else
{
temp->intData = data;
temp->next=NULL;
q->next = temp;
q = q->next;
q->valid = 1;
tail = q;

}


}


return 1;
}


void CNode::DisplayQueue()
{
struct queuelist* queue;
queue = head;
if(queue == NULL || queue->valid != 1)
{
textcolor(RED);
cout<<"Empty Queue";
}
else
{
while(queue != NULL)
{
if(queue->next!=0)
cout<<"||"<<queue->intData<<"|"<<queue->next;
else
cout<<"||"<<queue->intData<<"|NULL||->";
queue = queue->next;
}

}

cout<<endl;
}

int CNode::PopFromQueue()
{

int tempdat=0;
struct queuelist* queue;
struct queuelist* prev;
queue = head;
if(queue->valid !=1)
{
textcolor(RED);
cout<<"Queue Exhausted. No members."<<endl;
return -1;
}
else
{
queue = head;
prev = queue;
queue = queue->next;
head = queue;

}
tempdat = prev->intData;
prev->next=NULL;
free(prev);
return tempdat;
}

int CNode::DeleteQueue()
{
struct queuelist* prev;
queue = head;
while(queue!=NULL)
{
prev = queue;
queue = queue->next;
queue->valid=0;
free(prev);
}

return 1;
}</code>
Bye,
Sreekanth Muralidharan
GeneralRe: My Own Linked List Pin
John R. Shaw9-Nov-04 5:57
John R. Shaw9-Nov-04 5:57 
GeneralDisabling Toolbar Buttons Pin
Bernhard7-Nov-04 22:00
Bernhard7-Nov-04 22:00 
GeneralRe: Disabling Toolbar Buttons Pin
ThatsAlok7-Nov-04 22:06
ThatsAlok7-Nov-04 22:06 
GeneralRe: Disabling Toolbar Buttons Pin
Uwe Keim7-Nov-04 22:23
sitebuilderUwe Keim7-Nov-04 22:23 
GeneralQuestion about programatically created CListCtrl with WS_BORDER Pin
Uwe Keim7-Nov-04 21:54
sitebuilderUwe Keim7-Nov-04 21:54 
GeneralRe: Question about programatically created CListCtrl with WS_BORDER Pin
Uwe Keim7-Nov-04 22:14
sitebuilderUwe Keim7-Nov-04 22:14 
GeneralXP versions ... Pin
smack_2k27-Nov-04 21:53
smack_2k27-Nov-04 21:53 
GeneralRe: XP versions ... Pin
ThatsAlok7-Nov-04 22:13
ThatsAlok7-Nov-04 22:13 
QuestionHow to program same MSN popup ? Pin
guy20047-Nov-04 21:41
guy20047-Nov-04 21:41 
GeneralCombo Box Error Pin
vc-programmer-7-Nov-04 21:39
vc-programmer-7-Nov-04 21:39 
GeneralRe: Combo Box Error Pin
vc-programmer-7-Nov-04 23:16
vc-programmer-7-Nov-04 23:16 
GeneralRe: Combo Box Error Pin
BlackDice8-Nov-04 3:54
BlackDice8-Nov-04 3:54 
Generalconst_cast Pin
Jerome Conus7-Nov-04 21:29
Jerome Conus7-Nov-04 21:29 
GeneralRe: const_cast Pin
ThatsAlok7-Nov-04 22:17
ThatsAlok7-Nov-04 22:17 
QuestionAccess Active Directory to Control PC User Logon? Pin
DengJW7-Nov-04 19:17
DengJW7-Nov-04 19:17 
Generalnewbie here: doubt relating how i can create a global data Pin
namaskaaram7-Nov-04 18:58
namaskaaram7-Nov-04 18:58 
GeneralRe: newbie here: doubt relating how i can create a global data Pin
Anonymous7-Nov-04 21:57
Anonymous7-Nov-04 21:57 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.