1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
antoniya [11.8K]
3 years ago
13

In this part, you have to implement a linked list that maintains a list of integers in sorted order. Thus, if the list contains

2, 5 and 8, then 1 will be inserted at the start of the list, 3 will be inserted between 2 and 5 and 10 will be inserted at the end. The list can contain duplicate elements. 1 Input format: This program takes a le name as an argument from the command line. The le is either blank or contains successive lines of input. Each line contains a character, either `i' or `d', followed by a tab character and then an integer. For each of the lines that starts with `i', your program should insert that number in the linked list in sorted order. If it is already there, your program can insert it before or after the existing entry. If the line starts with a `d', your program should delete the rst value if it is present in the linked list. If there are duplicates your program must delete just the rst occurrence of the value. Your program should silently ignore the line if the requested value is not present in the linked list.
Computers and Technology
1 answer:
kupik [55]3 years ago
7 0

Answer:

#include <stdio.h>   // header file

#include <stdlib.h>

struct node{    //define structure "node"

int data;

struct node* next;    // object

};

struct node* add(struct node* head, int num);

struct node* delete(struct node* head, int num);

void print(struct node* head);

int size(struct node* head);

int main(int argc, char* argv[]){

FILE *fp = NULL;

struct node* head = NULL;

int num;

char command;

if(argc != 2){

printf("Please provide input filename as a command line argument\n");

return 1;

}

fp = fopen(argv[1], "r");

if(fp == NULL){

printf("error\n");

return 1;

}

fscanf(fp, "%c %d", &command, &num);

while(!feof(fp)){

if(command == 'i')

head = add(head, num);

else if(command == 'd')

head = delete(head, num);

fscanf(fp, "%c %d", &command, &num);

}

fclose(fp);

printf("%d\n",size(head));

print(head);

}

struct node* add(struct node* head, int num){

struct node* prev = NULL;

struct node* curr = head;

struct node* n = (struct node*) malloc(sizeof(struct node));

n->data = num;

n->next = NULL;

while(curr != NULL){

if(num < curr->data) //found a place to insert

break;

else if(num == curr->data) //duplicate

return head;

prev = curr;

curr = curr->next;

}

n->next = curr;

if(prev != NULL)

prev->next = n;

else

head = n;

return head;

}

struct node* delete(struct node* head, int num){

struct node* prev = NULL;

struct node* curr = head;

while(curr != NULL){

if(num < curr->data)

return head;

else if(num == curr->data)

break;

prev = curr;

curr = curr->next;

}

if(curr == NULL) //did not find

return head;

if(prev == NULL) //remove 1st node

head = curr->next;

else

prev->next = curr->next;

free(curr);

return head;

}

void print(struct node* head)

{

struct node* curr = head;

if(head != NULL){

printf("%d", curr->data);

curr = curr->next;

while(curr != NULL){

printf("\t%d", curr->data);

curr = curr->next;

}

}

printf("\n");

}

int size(struct node* head){

struct node* curr = head;

int count = 0;

while(curr != NULL){

count++;

curr = curr->next;

}

return count;

}

Output:

Provide input filename as a command-line argument

Test2 sg$ ./.s.out in.txt

2  5  8

1  2  3  5  10

Test2 sg$  

Explanation:

we create a link list of integer in sorted order then if we input as 2  5  8, then 1  insert at the starting of the list and 3 in middle of 2 and 5 and 10 is inserted at the last.

You might be interested in
How to program a concrete Damage-Plasticity material?
goldenfox [79]
A simple scanner. that you by at the stor
7 0
3 years ago
Debugging 2.17.3: Debug: The Two Towers Code Hs
miv72 [106K]

Answer:

start with what you know

Explanation:

you can learn a lot from it

8 0
3 years ago
What are some recent inventions that have improved the quality of your life?
Eva8 [605]
Phones, they help me with school work and provide entertainment.
4 0
3 years ago
Linda is searching for a new job. Which information would her potential employers likely review in her social profile?
nasty-shy [4]
The answer will be A they would wanna know about her work history
3 0
3 years ago
Read 2 more answers
The Campus Housing Service helps students find apartments. Owners of apartments fill in information forms about the rental units
Alexxx [7]

Answer:

Check the explanation

Explanation:

LI system and software engineering concepts, the use cases are widely used Use case is a collection of eve. or actions steps, it mainly defining the interactions between a system and a role for achieving a specific goal.

Here the actor can he external system or a human being:

For identifying the use case, the below steps needs to he followed

• Identify the actors involved in the system.

  • In our task the actors are the student and the owners  

• Identify the actor's goals

  • Goals are the activities performed

• Identify the use case candidates

The persons who are all actively involved in the use case

• Identify the use case starting points

• Identifying the use case ending points

• rind the scope and the unit of interactions in the use case  

Identifying the steps in Housing system:

• Several implementation steps are provided in the task that needs to he identified in this particular stage

• The housing system is helping the stuck,. for finding the con. apartments which is meeting their requirements

Check the below diagram.

6 0
4 years ago
Other questions:
  • If you like to spend time outdoors working with plants and animals, you have a(n) _____. a. bodily/kinesthetic learning style b.
    6·2 answers
  • What entity created the open systems interconnection (osi) seven-layer model?
    15·1 answer
  • What adds the element carbon to the environment
    10·2 answers
  • Which is the biggest known issue specific to satellite Internet connections?
    13·2 answers
  • which internet technology allows businesses to make presentation and share visual aids such as charts and graphs
    14·2 answers
  • CHEMISTRY. metal+water》base+...............​
    12·1 answer
  • What are the basic features of Usenet group
    15·1 answer
  • Please help I don’t know
    5·1 answer
  • Level Access Test - Please Ignore
    14·1 answer
  • Which terms would be found in search for "Mo*”? Check all that apply.
    8·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!