Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Having Some trouble with this program. All the information is in the first link

ID: 3828258 • Letter: H

Question

Having Some trouble with this program. All the information is in the first link and the files you need are in the next three links. Only the function.c file needs to be edited.

Linked Lists

http://mjgeiger.github.io/eece2160/programs/EECE.2160_prog9_DLList.pdf

Starter Files: Only the prog9_functions.c file needs to edited.

http://mjgeiger.github.io/eece2160/programs/prog9_decode.c

http://mjgeiger.github.io/eece2160/programs/prog9_functions.c

http://mjgeiger.github.io/eece2160/programs/prog9_functions.h

Explanation / Answer

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

struct node
{
int data;
struct node *next;
}*head;



void append(int num)
{
struct node *temp,*right;
temp= (struct node *)malloc(sizeof(struct node));
temp->data=num;
right=(struct node *)head;
while(right->next != NULL)
right=right->next;
right->next =temp;
right=temp;
right->next=NULL;
}



void add( int num )
{
struct node *temp;
temp=(struct node *)malloc(sizeof(struct node));
temp->data=num;
if (head== NULL)
{
head=temp;
head->next=NULL;
}
else
{
temp->next=head;
head=temp;
}
}
void addafter(int num, int loc)
{
int i;
struct node *temp,*left,*right;
right=head;
for(i=1;i<loc;i++)
{
left=right;
right=right->next;
}
temp=(struct node *)malloc(sizeof(struct node));
temp->data=num;
left->next=temp;
left=temp;
left->next=right;
return;
}



void insert(int num)
{
int c=0;
struct node *temp;
temp=head;
if(temp==NULL)
{
add(num);
}
else
{
while(temp!=NULL)
{
if(temp->data<num)
c++;
temp=temp->next;
}
if(c==0)
add(num);
else if(c<count())
addafter(num,++c);
else
append(num);
}
}



int delete(int num)
{
struct node *temp, *prev;
temp=head;
while(temp!=NULL)
{
if(temp->data==num)
{
if(temp==head)
{
head=temp->next;
free(temp);
return 1;
}
else
{
prev->next=temp->next;
free(temp);
return 1;
}
}
else
{
prev=temp;
temp= temp->next;
}
}
return 0;
}


void display(struct node *r)
{
r=head;
if(r==NULL)
{
return;
}
while(r!=NULL)
{
printf("%d ",r->data);
r=r->next;
}
printf(" ");
}


int count()
{
struct node *n;
int c=0;
n=head;
while(n!=NULL)
{
n=n->next;
c++;
}
return c;
}


int main()
{
int i,num;
struct node *n;
head=NULL;
while(1)
{
printf(" List Operations ");
printf("=============== ");
printf("1.Insert ");
printf("2.Display ");
printf("3.Size ");
printf("4.Delete ");
printf("5.Exit ");
printf("Enter your choice : ");
if(scanf("%d",&i)<=0){
printf("Enter only an Integer ");
exit(0);
} else {
switch(i)
{
case 1: printf("Enter the number to insert : ");
scanf("%d",&num);
insert(num);
break;
case 2: if(head==NULL)
{
printf("List is Empty ");
}
else
{
printf("Element(s) in the list are : ");
}
display(n);
break;
case 3: printf("Size of the list is %d ",count());
break;
case 4: if(head==NULL)
printf("List is Empty ");
else{
printf("Enter the number to delete : ");
scanf("%d",&num);
if(delete(num))
printf("%d deleted successfully ",num);
else
printf("%d not found in the list ",num);
}
break;
case 5: return 0;
default: printf("Invalid option ");
}
}
}
return 0;
}

Output :

List Operations
===============
1.Insert
2.Display
3.Size
4.Delete
5.Exit
Enter your choice : 1
Enter the number to insert : 3

List Operations
===============
1.Insert
2.Display
3.Size
4.Delete
5.Exit
Enter your choice : 1
Enter the number to insert : 2

List Operations
===============
1.Insert
2.Display
3.Size
4.Delete
5.Exit
Enter your choice : 2
Element(s) in the list are : 2 3

List Operations
===============
1.Insert
2.Display
3.Size
4.Delete
5.Exit
Enter your choice :

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote