Last active
July 9, 2019 20:56
-
-
Save chrisdel101/24685c2781a2c31fd44918364f166b1f to your computer and use it in GitHub Desktop.
c list excercise
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
#include <math.h> | |
#include <stdlib.h> | |
#include <stdbool.h> | |
#define NAME_LENGTH 45 | |
#define HASHTABLE_SIZE 65536 | |
typedef struct Node | |
{ | |
char name[NAME_LENGTH]; | |
struct Node *next; | |
} Node; | |
Node *transverseAdd(Node *head, char *name) | |
{ | |
Node *tempList = head; | |
Node *newNode = malloc(sizeof(Node)); | |
int length = 0; | |
if (newNode == NULL) | |
{ | |
exit(0); | |
} | |
strcpy(newNode->name, name); | |
newNode->next = NULL; | |
// empty list | |
if (tempList == NULL) | |
{ | |
tempList = newNode; | |
return tempList; | |
} | |
else | |
{ | |
while (tempList->next != NULL) | |
{ | |
// // check if matches current | |
if (strcmp(tempList->name, name) > 0 || strcmp(tempList->name, name) == 0) | |
{ | |
Node *tempNode = tempList; | |
tempList = newNode; | |
newNode->next = tempNode; | |
return tempList; | |
} | |
tempList = tempList->next; | |
} | |
if (strcmp(tempList->name, name) > 0) | |
{ | |
Node *tempNode = tempList; | |
tempList = newNode; | |
newNode->next = tempNode; | |
return tempList; | |
} | |
} | |
while (tempList->next != NULL) | |
{ | |
tempList = tempList->next; | |
} | |
tempList->next = newNode; | |
return head; | |
} | |
bool emailChecker(char *name, char *email) | |
{ | |
char gmail[] = "gmail"; | |
if (strstr(email, gmail)) | |
{ | |
return true; | |
} | |
return false; | |
} | |
void display(Node *head) | |
{ | |
Node *start = head; | |
while (start) | |
{ | |
printf("name %s\n", start->name); | |
start = start->next; | |
} | |
printf("\n"); | |
} | |
int main(void) | |
{ | |
int T, data; | |
scanf("%d", &T); | |
Node *list = NULL; | |
char name[20]; | |
char email[50]; | |
while (T-- > 0) | |
{ | |
memset(name, 0, sizeof(name)); | |
memset(email, 0, sizeof(email)); | |
scanf("%s %s", name, email); | |
list = transverseAdd(list, name); | |
} | |
display(list); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Should this have 3
julia
s in the output?