From f103a9c3301e7dcdceed700665fa731f1ddad28f Mon Sep 17 00:00:00 2001 From: lee Date: Wed, 26 Jun 2019 13:08:49 +0100 Subject: [PATCH] readme sortlistinsert from quest 11 --- subjects/sortlistinsert.en.md | 51 ++++++++++++--------------- subjects/sortlistinsert.fr.md | 66 +++++++++++++++++++++++++++-------- 2 files changed, 73 insertions(+), 44 deletions(-) diff --git a/subjects/sortlistinsert.en.md b/subjects/sortlistinsert.en.md index b84a35b9..8b6ab31b 100644 --- a/subjects/sortlistinsert.en.md +++ b/subjects/sortlistinsert.en.md @@ -11,12 +11,7 @@ Write a function `SortListInsert` that inserts `data_ref` in the linked list, bu ### Expected function and structure ```go -type node struct { - data int - next *node -} - -func SortListInsert(l *node, data_ref int) *node{ +func SortListInsert(l *Nodee, data_ref int) *Nodee{ } ``` @@ -30,50 +25,48 @@ package main import ( "fmt" + piscine ".." ) -//Prints the list -func PrintList(l *node) { +func PrintList(l *piscine.Nodee) { m := l for m != nil { - fmt.Print(m.data, " -> ") - m = m.next + fmt.Print(m.Data, " -> ") + m = m.Next } fmt.Print(nil) fmt.Println() } -//insert elements -func listPushBack(l *node, data int) { - n := &node{} - n.data = data - n.next = nil + +func listPushBack(l *piscine.Nodee, data int) *piscine.Nodee { + n := &piscine.Nodee{Data: data} + if l == nil { - l = n - return + return n } iterator := l - for iterator.next != nil { - iterator = iterator.next + for iterator.Next != nil { + iterator = iterator.Next } - iterator.next = n + iterator.Next = n + return l } func main() { - link := &node{} + var link *piscine.Nodee - listPushBack(link, 1) - listPushBack(link, 4) - listPushBack(link, 9) + link = listPushBack(link, 1) + link = listPushBack(link, 4) + link = listPushBack(link, 9) PrintList(link) - link = sortListInsert(link, -2) - link = sortListInsert(link, 2) + link = piscine.SortListInsert(link, -2) + link = piscine.SortListInsert(link, 2) PrintList(link) } - ``` And its output : @@ -81,7 +74,7 @@ And its output : ```console student@ubuntu:~/piscine/test$ go build student@ubuntu:~/piscine/test$ ./test --2 -> 0 -> 1 -> 2 -> 4 -> 9 -> -lee@lee:~/Documents/work/day11/11-16-sortlistinsert/so +1 -> 4 -> 9 -> +-2 -> 1 -> 2 -> 4 -> 9 -> student@ubuntu:~/piscine/test$ ``` diff --git a/subjects/sortlistinsert.fr.md b/subjects/sortlistinsert.fr.md index 7db913a6..8b6ab31b 100644 --- a/subjects/sortlistinsert.fr.md +++ b/subjects/sortlistinsert.fr.md @@ -1,44 +1,80 @@ -## countif +## listpushback ### Instructions -Écrire une fonction `CountIf` qui retournes le nombre d'éléments d'un tableau de `string` pour lesquels la fonction `f` retourne `true`. +Write a function `SortListInsert` that inserts `data_ref` in the linked list, but it as to remain sorted in ascending order. -### Fonction attendue +- The list as to be alredy sorted. + +- Use pointers when ever you can. + +### Expected function and structure ```go -func CountIf(f func(string) bool, tab []string) int { +func SortListInsert(l *Nodee, data_ref int) *Nodee{ + } ``` -### Utilisation +### Usage -Voici un éventuel [programme](TODO-LINK) pour tester votre fonction : +Here is a possible [program](TODO-LINK) to test your function : ```go package main import ( "fmt" + piscine ".." ) +func PrintList(l *piscine.Nodee) { + m := l + for m != nil { + fmt.Print(m.Data, " -> ") + m = m.Next + } + fmt.Print(nil) + fmt.Println() +} + +func listPushBack(l *piscine.Nodee, data int) *piscine.Nodee { + n := &piscine.Nodee{Data: data} + + if l == nil { + return n + } + iterator := l + for iterator.Next != nil { + iterator = iterator.Next + } + iterator.Next = n + return l +} + func main() { - tab1 := []string{"Hello", "how", "are", "you"} - tab2 := []string{"This","1", "is", "4", "you"} - answer1 := piscine.CountIf(piscine.IsNumeric, tab1) - answer2 := piscine.CountIf(piscine.IsNumeric, tab2) - fmt.Println(answer1) - fmt.Println(answer2) + + var link *piscine.Nodee + + link = listPushBack(link, 1) + link = listPushBack(link, 4) + link = listPushBack(link, 9) + + PrintList(link) + + link = piscine.SortListInsert(link, -2) + link = piscine.SortListInsert(link, 2) + PrintList(link) } ``` -Et son résultat : +And its output : ```console student@ubuntu:~/piscine/test$ go build student@ubuntu:~/piscine/test$ ./test -0 -2 +1 -> 4 -> 9 -> +-2 -> 1 -> 2 -> 4 -> 9 -> student@ubuntu:~/piscine/test$ ```