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
Interchanges of ideas in forums and internet news groups are functions of which domain?
Anarel [89]
I believe that the answer to the question provided above is that the  <span>Interchanges of ideas in forums and internet news groups are functions of the information domain.</span>
Hope my answer would be a great help for you.    If you have more questions feel free to ask here at Brainly.
5 0
4 years ago
What is a functionalist perspective of cell phones, internet and personal computers?
Sedbober [7]
<span>As these technologies are rapidly evolving a functionalist would say that they unbalance the equilibrium of the social state, and is therefore undesirable as there is more interaction and adaptation of habits from other societies. But they also say that it's not a good thing to change immediately because it might disrupt the society. Therefore it has to change slowly. </span>
3 0
3 years ago
Setting up network encryption involves
fiasKO [112]
A or B cuz you need one of the two to have WiFi cuz my computer asks if i have an adapter and then SSID
7 0
3 years ago
Read the code snippet below and determine which markup language it is:
nignag [31]

Answer:

Sound Card

Explanation:

4 0
3 years ago
Ravi is writing an essay on the impact of the internet on business. Help him classify the scenarios he sees around him as positi
Radda [10]

Answer: See explanation

Explanation:

Based on the options given, the positive effects of the internet on business will be:

• He recently bought a second-hand camera online, which he hadn't been able to find in any store.

• His friend sell printed T-shirts online, storing them in his basement and promoting them on social media.

The negative effects of the internet on business will be:

• A bookstore down the road shut down because people preferred the cheaper online bookstores.

• Ravi's sister complains that her boss always knows when she is late, but rarely greets her if their paths cross in office.

• One of his friend's printed T-shirts got wet and stained in the delivery truck and the buyer wrote a nasty review.

6 0
3 years ago
Other questions:
  • The operation of the waste spark Ignition system is being discussed. technician a says that the spark that occurs on the exhaust
    14·1 answer
  • 10.
    13·1 answer
  • What is FireWire?
    7·2 answers
  • You have a chart that shows 100 data points and you've circled the highest value. Which of the following are you using?
    9·2 answers
  • The chief reason that family and friends are frequent targets of aggression is that
    6·1 answer
  • Given the variables full_admission_price and discount_amount (already defined), write an expression corresponding to the price o
    15·1 answer
  • What does ctto mean?
    11·2 answers
  • Write a program that reads a file called 'test.txt' and prints out the contents on the screen after removing all spaces and newl
    7·1 answer
  • World pade is world processing software true or false​
    15·1 answer
  • PLS HURRRYYYYYY!1!1!1!1!1
    5·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!