Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

//Employee7.

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#define NUM_OF_EMPLOYEES 3

struct Employee {

char name[20];

int id;

double salary;

};

typedef struct Employee Employee;

struct EmployeeNode{

Employee data;

struct EmployeeNode *next;

};

typedef struct EmployeeNode EmployeeNode;

typedef EmployeeNode* EmployeeNodePtr;

void insertNode(EmployeeNodePtr *s, EmployeeNode newEmployeeNode);

void showList(EmployeeNodePtr s);

void deleteNode(EmployeeNodePtr *s);

int main(){

//Lab Demonstration: Linked List and functions

EmployeeNode newEmployeeNode;
EmployeeNodePtr start = NULL;

char inputName[20];

int inputID;

double inputSalary;

int i;

//read input and store in a linked list

printf("\nInput data, call insertNode() function to add node(s) in a


linked list...");

for ( i=1; i<=NUM_OF_EMPLOYEES; i++)

printf("\n\nEnter name: ");

scanf("%s",&inputName);

printf("\nEnter id: ");

scanf("%d",&inputID);

printf("\nEnter salary: ");

scanf("%lf",&inputSalary);

strcpy(newEmployeeNode.data.name, inputName);

newEmployeeNode.data.id = inputID;

newEmployeeNode.data.salary = inputSalary;

newEmployeeNode.next = NULL;

insertNode(&start, newEmployeeNode);

printf("\nAfter inserting node(s)...");

//display output from a linked list

showList(start);
printf("\n\nTo delete node, call deleteNode() function...");

deleteNode(&start);

printf("\nAfter deleting node...");

//display output from a linked list

showList(start);

return 0;

void insertNode(EmployeeNodePtr *s, EmployeeNode newEmployeeNode)

EmployeeNodePtr ptr;

ptr = malloc(sizeof(EmployeeNode));

ptr->data = newEmployeeNode.data;

ptr->next = NULL;

if(s!=NULL)

ptr->next = *s;

*s = ptr;

void showList(EmployeeNodePtr s)

EmployeeNodePtr ptr;

ptr = s;

while (ptr!=NULL)
{

printf("\nName: %s Id: %d Salary: %.2lf", ptr->data.name,


ptr->data.id, ptr->data.salary );

ptr = ptr->next;

printf("\n\n");

void deleteNode(EmployeeNodePtr *s)

EmployeeNodePtr ptr;

ptr= *s;

*s = (*s)->next;

free(ptr);

You might also like