-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinkedList.c
More file actions
69 lines (60 loc) · 1.24 KB
/
Copy pathlinkedList.c
File metadata and controls
69 lines (60 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <stdlib.h>
#include "linkedList.h"
void allocate(node* *p){
*p = malloc(sizeof(node));
};
cell * paragraph( node *p ){
return p->pragraph;
};
void assignaddr(node *p , node * add){
p->next = add ;
};
node * next(node *p){
return p->next ;
};
void insertNewParagraph(node * * head , node * newParagraph , cell * paragraphTree){
node *start = *head;
allocate(&newParagraph);
if(*head == NULL){
*head = newParagraph ;
(*head)->next = NULL ;
(*head)->pragraph = paragraphTree ;
}else{
while (start->next)
{
start = next(start) ;
}
start->next = newParagraph ;
newParagraph->next = NULL ;
newParagraph->pragraph = paragraphTree ;
}
}
void freeList(node * head){
if(head == NULL){
return ;
}
node * current = head ;
node * prev = head ;
while(current != NULL){
prev = current ;
current = current->next;
freeTree(prev->pragraph);
free(prev);
}
}
void freeFile(node ** head){
if(head == NULL){
return ;
}
node * current = head[0] ;
node * prev = head[0] ;
int i = 0 ;
while(current != NULL){
prev = current ;
i++;
current = head[i] ;
freeList(prev);
}
free(head);
}