0% found this document useful (0 votes)
16 views1 page

Insert Head

Uploaded by

myrachaturvedi15
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views1 page

Insert Head

Uploaded by

myrachaturvedi15
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

#include <stdio.

h>
#include <stdlib.h>
#include <assert.h>
struct node {
struct node *next;
int data;
};
struct node *insert_head(int value, struct node *head);
struct node *array_to_list(int len, int array[]);
void print_list(struct node *head);
// DO NOT CHANGE THIS MAIN FUNCTION
#define MAX_INIT_LIST_LEN 100
int main() {
// Need to read in a number of ints into an array
printf("How many numbers in initial list?: ");
int list_size = 0;
scanf("%d", &list_size);
int initial_elems[MAX_INIT_LIST_LEN] = {0};
int n_read = 0;
while (n_read < list_size && scanf("%d", &initial_elems[n_read])) {
n_read++;
}

// create linked list from first set of inputs


struct node *head = NULL;
if (n_read > 0) {
// list has elements
head = array_to_list(n_read, initial_elems);
}

printf("Enter number to insert to head: ");


int value = 0;
scanf("%d", &value);
struct node *new_head = insert_head(value, head);
print_list(new_head);

return 0;
}

// WRITE YOUR CODE INSIDE HERE ONLY!!!


// Insert a new node containing value at the start of the linked list.
// The head of the new list is returned.
struct node *insert_head(int value, struct node *head) {
// PUT YOUR CODE HERE (change the next line!) structnodenewhead
(sizeof(node)):
return NULL;
} -maccoc

// DO NOT CHANGE THIS FUNCTION - nst conditi


// create linked list from array of strings
Value;
new-head - data:
struct node *array_to_list(int len, int array[]) {
struct node *head = NULL;
int i = len - 1;
while (i >= 0) {
struct node *n = malloc(sizeof (struct node));
next
-head;
assert(n != NULL);
n->next = head; new-head -

head;
n->data = array[i];
head = n;
i -= 1;
new
}
return head; estern
}

// DO NOT CHANGE THIS FUNCTION


// print linked list
void print_list(struct node *head) {
printf("[");
struct node *n = head;
while (n != NULL) {
// If you're getting an error here,
// you have returned an invalid list
printf("%d", n->data);
if (n->next != NULL) {
printf(", ");

You might also like