Commit 0b8a11f3 authored by a-j.towse's avatar a-j.towse

inital commit

parent ed422a72
main 100644 → 100755
No preview for this file type
......@@ -13,15 +13,24 @@ node* NewNode(int value);
void AddNodeToStartOfList(node **ptr_to_start, int value);
void AddNodeToEndOfList(node **ptr_to_start, int value);
void PrintLinkedList(node *start);
int ListLength(node *start);
void AddNode(node **ptr_to_start,int value);
int main(void) {
node *head = NULL;
AddNodeToStartOfList(&head,5);
AddNodeToStartOfList(&head,2);
AddNodeToEndOfList(&head,7);
AddNodeToEndOfList(&head,2);
AddNodeToEndOfList(&head,4);
AddNodeToEndOfList(&head,6);
PrintLinkedList(head);
printf("List Length: %d\n",ListLength(head));
AddNode(&head,5);
printf("List Length: %d\n",ListLength(head));
return 0;
}
......@@ -91,6 +100,45 @@ void AddNodeToEndOfList(node **ptr_to_start, int value)
return;
}
int ListLength(node *start) {
int count = 0;
while (start!=NULL) {
count += 1;
start = start->next;
}
return count;
}
void AddNode(node **ptr_to_start,int value) {
node *temp = *ptr_to_start;
node *before;
node *after;
if (temp == NULL) {
AddNodeToStartOfList(ptr_to_start,value);
}
else {
while (temp !=NULL) {
if (temp->val > value && temp->val < temp->next->val){
before = temp;
after = temp->next;
temp = NewNode(value);
before->next = temp;
temp->next = after;
}
else if (temp->next == NULL){
AddNodeToEndOfList(ptr_to_start,value);
}
else {
temp = temp->next;
}
}
}
}
/* Exercise Tasks
1. Write a function int ListLength(*start) which traverses the list, counts the number of nodes and returns that count.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment