asked 100k views
4 votes
Consider designing a program where you need to store information about every student ASU. You need to be able to quickly determine which students are graduating this semester. Would you use an array or linked list? Analyze the problem, design a choice, and justify the choice

asked
User Hirofumi
by
7.9k points

1 Answer

3 votes

Answer:

Check the explanation

Step-by-step explanation:

Both Arrays and Linked List can be used to store linear data of similar types, but they both have some advantages and disadvantages over each other. To store information about every student we can use an array

Reason:

In the array the elements belong to indexes, i.e., if you want to get into the fourth element you have to write the variable name with its index or location within the square bracket.

In a linked list though, you have to start from the head and work your way through until you get to the fourth element.

Accessing an element in an array is fast, while Linked list takes linear time, so it is quite a bit slower.

Example: store the data of students and have faster access and this program in example also do sorting

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// struct person with 3 fields

struct Student {

char* name;

int id;

char age;

};

// setting up rules for comparison

// to sort the students based on names

int comparator(const void* p, const void* q)

{

return strcmp(((struct Student*)p)->name,

((struct Student*)q)->name);

}

// Driver program

int main()

{

int i = 0, n = 5;

struct Student arr[n];

// Get the students data

arr[0].id = 1;

arr[0].name = "bd";

arr[0].age = 12;

arr[1].id = 2;

arr[1].name = "ba";

arr[1].age = 10;

arr[2].id = 3;

arr[2].name = "bc";

arr[2].age = 8;

arr[3].id = 4;

arr[3].name = "aaz";

arr[3].age = 9;

arr[4].id = 5;

arr[4].name = "az";

arr[4].age = 10;

// Print the Unsorted Structure

printf("Unsorted Student Records:\\");

for (i = 0; i < n; i++) {

printf("Id = %d, Name = %s, Age = %d \\",

arr[i].id, arr[i].name, arr[i].age);

}

// Sort the structure

// based on the specified comparator

qsort(arr, n, sizeof(struct Student), comparator);

// Print the Sorted Structure

printf("\\\\Student Records sorted by Name:\\");

for (i = 0; i < n; i++) {

printf("Id = %d, Name = %s, Age = %d \\",

arr[i].id, arr[i].name, arr[i].age);

}

return 0;

}

Output:

Unsorted Student Records: Id = 1, Name = bd, Age = 12 Id = 2, Name = ba, Age = 10 Id = 3, Name = bc, Age = 8 Id = 4, Name = aaz, Age = 9 Id = 5, Name = az, Age = 10

Related questions

asked May 12, 2024 69.9k views
Matteo Riva asked May 12, 2024
by Matteo Riva
8.0k points
1 answer
3 votes
69.9k views
asked Feb 2, 2024 21.6k views
Nouvist asked Feb 2, 2024
by Nouvist
7.9k points
1 answer
4 votes
21.6k views
asked Jul 28, 2024 29.7k views
LPark asked Jul 28, 2024
by LPark
8.6k points
1 answer
2 votes
29.7k views