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

C / C++ / MFC

 
GeneralRe: #include problems Pin
vilmer8-Nov-04 3:09
vilmer8-Nov-04 3:09 
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 
Hello,
I cleared the above problems with the following updates to my original code:
#include <stdio.h><br />
#include <conio.h><br />
#include <process.h><br />
#include <malloc.h><br />
<br />
struct queuelist<br />
{<br />
	int intData;<br />
	int valid;<br />
	struct queuelist* next;<br />
<br />
};<br />
struct queuelist *head, *tail;<br />
<br />
int AddToQueue(struct queuelist*,int);<br />
int RemoveFromQueue(struct queuelist*);<br />
int DeleteQueue(struct queuelist*);<br />
void DisplayQueue(struct queuelist*);<br />
void menu();<br />
struct queuelist* queue=NULL;<br />
<br />
void menu()<br />
{<br />
<br />
	int option=0;<br />
	<br />
	int data=0;<br />
	printf("Queue Manipulation Menu\n");<br />
	printf("........................\n\n");<br />
	printf("1. Add member to queue.\n");<br />
	printf("2. Extract next member.\n");<br />
	printf("3. Delete whole queue.\n");<br />
	printf("4. Help\n");<br />
	printf("5. Display queue contents.\n");<br />
	printf("6. Quit.\n");<br />
	scanf("%d",&option);<br />
	switch(option)<br />
	{<br />
		case 1:<br />
			queue=head;<br />
			printf("Adding to queue.\n");<br />
			printf("Member: ");<br />
			scanf("%d",&data);<br />
			if(AddToQueue(queue,data)==-1)<br />
				printf("Could not add..\n");<br />
			else<br />
				printf("Added..\n");<br />
			break;<br />
<br />
		case 2:<br />
			system("cls");<br />
			printf("Extract next member.\n");<br />
			RemoveFromQueue(queue);<br />
			break;<br />
<br />
		case 3:<br />
			DeleteQueue(queue);<br />
			break;<br />
<br />
		case 4:<br />
			printf("Under Construction.\n");<br />
		case 5:<br />
			printf("Queue Contents.\n");<br />
			DisplayQueue(queue);<br />
			break;<br />
<br />
		case 6:<br />
			exit(0);<br />
<br />
		default:<br />
			printf("Invalid Option..\n");<br />
<br />
	}<br />
}<br />
<br />
void main()<br />
{<br />
	system("cls");<br />
	while(1)<br />
	menu();<br />
	getch();<br />
<br />
}<br />
<br />
int AddToQueue(struct queuelist* q, int data)<br />
{<br />
	struct queuelist* temp;<br />
	q = head;<br />
	if(q == NULL)<br />
	{<br />
		printf("First member in queue.\n");<br />
		q = (struct queuelist*)malloc(sizeof(struct queuelist));<br />
		if(q == NULL)<br />
		{<br />
			printf("Not enough memory. Stopping...\n");<br />
			return -1;<br />
		}<br />
		else<br />
		{<br />
			q->intData = data;<br />
			q->valid=1;<br />
			q->next=NULL;<br />
			head = q;<br />
			tail = q;<br />
		<br />
		}<br />
<br />
<br />
	}<br />
	else<br />
	{<br />
		q=head;<br />
		while(q->next!=NULL) q = q->next;<br />
<br />
		temp = (struct queuelist*)malloc(sizeof(struct queuelist));<br />
		if(temp == NULL)<br />
		{<br />
			printf("Not enough memory. Quitting...\n");<br />
			return -1;<br />
		}<br />
		else<br />
		{<br />
			temp->intData = data;<br />
			temp->next=NULL;<br />
			q->next = temp;<br />
			q = q->next;<br />
			q->valid = 1;<br />
			tail = q;<br />
<br />
		}<br />
<br />
<br />
	}<br />
<br />
<br />
	return data;<br />
}<br />
<br />
<br />
void DisplayQueue(struct queuelist* queue)<br />
{<br />
	system("cls");<br />
	queue = head;<br />
	if(queue == NULL || queue->valid != 1)<br />
	{<br />
		printf("Empty Queue");<br />
	}<br />
	else<br />
	{<br />
	while(queue != NULL)<br />
	{<br />
		printf("||%d|%x||->",queue->intData,queue->next);<br />
		queue = queue->next;<br />
	}<br />
<br />
	}<br />
	printf("\n");<br />
<br />
}<br />
<br />
int RemoveFromQueue(struct queuelist* queue)<br />
{<br />
<br />
	struct queuelist* prev;<br />
	struct queuelist* second;<br />
	queue = head;<br />
	if(queue->valid !=1 || queue==NULL)<br />
	{<br />
		printf("Queue Exhausted. No members.\n");<br />
		return -1;<br />
	}<br />
	else<br />
	{<br />
		queue = head;<br />
		prev = queue;<br />
		queue = queue->next;<br />
		second = queue;<br />
		head = queue;<br />
		printf("Popped off : %d at %x\n",prev->intData, prev->next);<br />
		prev->next = NULL;<br />
		free(prev);<br />
	}<br />
<br />
	return prev->intData;<br />
<br />
}<br />
int DeleteQueue(struct queuelist* queue)<br />
{<br />
	struct queuelist* prev;<br />
	queue = head;<br />
	if(queue == NULL)<br />
		return -1;<br />
	while(queue!=NULL)<br />
	{<br />
		prev = queue;<br />
		queue = queue->next;<br />
		queue->valid=0;<br />
		free(prev);<br />
	}<br />
<br />
	return 1;<br />
}


Tis now working perfectly. I will return with wrappers around this so that these could be included in a class.
Regards,
Sreekanth Muralidharan,;P
Software Consultant.
GeneralRe: My Own Linked List Pin
Sreekanth Muralidharan8-Nov-04 22:33
Sreekanth Muralidharan8-Nov-04 22:33 
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 

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.