[ create a new paste ] login | about

Link: http://codepad.org/yjcG81LL    [ raw code | output | fork ]

C, pasted on Mar 4:
#include <stdio.h>
#include <stdlib.h>

struct ClientList 
{
    struct ClientList *Next;
    int data;
};

struct ClientList *head;

void insert(int data)
{
    struct ClientList *temp=(struct ClientList *) malloc(sizeof(struct ClientList)) ;
    temp->data = data;

    temp->Next=head;
    head=temp;
}

int del(struct ClientList *temp)
{
    struct ClientList *cur=head;
    if(temp==head)
    {
		head=temp->Next;
        free(temp);
    }
    else {
        while(cur)
        {
            if(cur->Next==temp)
            {
                cur->Next=temp->Next;
                free(temp);
            }
            cur=cur->Next;
        }
    }
	return 0;
}

struct ClientList *find(int data)
{
	struct ClientList *cur=head;
	while (cur)
	{
		if (cur->data == data)
			return cur;
		cur = cur->Next;
	}
	return NULL;
}

void printList(char *pre)
{
	struct ClientList *cur=head;
	printf("%s:\n",pre);
	if (!cur)
		printf("List is empty.\n");
	while (cur)
	{
		printf("%d\n", cur->data);
		cur = cur->Next;
	}
	printf("\n");
}

int main(int argc, char **argv)
{
	insert(0);
	insert(1);
	insert(2);
	insert(3);
	printList("After Inserts");

	del(find(2));
	printList("After del(find(2))");

	del(find(0));
	printList("After del(find(0))");

	del(find(1));
	printList("After del(find(1))");

	del(find(3));
	printList("After del(find(3))");

	insert(4);
	printList("After insert(4)");
	return 0;
}


Output:
After Inserts:
3
2
1
0

After del(find(2)):
3
1
0

After del(find(0)):
3
1

After del(find(1)):
3

After del(find(3)):
List is empty.

After insert(4):
4



Create a new paste based on this one


Comments: