File tree 4 files changed +146
-0
lines changed
4 files changed +146
-0
lines changed Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "fmt"
5
+
6
+ // "sort"
7
+ "algorithm/linetable"
8
+ )
9
+
10
+ func main (){
11
+ list := linetable .NewNodeList ()
12
+ // sort.Ints()
13
+ fmt .Println ("sss" )
14
+ algorithm ..
15
+ }
File renamed without changes.
Original file line number Diff line number Diff line change
1
+ package linetable
2
+
3
+ import (
4
+ "fmt"
5
+ )
6
+
7
+ type List interface {
8
+ Add (elem int )
9
+ Insert (i , elem int )
10
+ Delete (i , elem int )
11
+ Query (elem int ) int
12
+ Diskpaly ()
13
+ Update (i , elem int ) bool
14
+ }
15
+
16
+ type Node struct {
17
+ value int
18
+ Next * Node
19
+ }
20
+
21
+ type nodeList struct {
22
+ head * Node
23
+ length int
24
+ }
25
+
26
+ type ListService struct {
27
+ // nodeList nodeList
28
+ list List
29
+ }
30
+
31
+ func NewNodeList () ListService {
32
+ return ListService {
33
+ // nodeList: nodeList{
34
+ // head: &Node{},
35
+ // length: 0,
36
+ // },
37
+ list : & nodeList {},
38
+ }
39
+ }
40
+
41
+ func (n * nodeList ) Add (elem int ) {
42
+ tmp := & Node {}
43
+ tmp = n .head
44
+ for (tmp .Next != nil ) {
45
+ tmp = tmp .Next
46
+ }
47
+ tmp .Next = & Node {
48
+ value : elem ,
49
+ Next : nil ,
50
+ }
51
+ n .length ++
52
+ }
53
+
54
+ func (n * nodeList ) Insert (i , elem int ) {
55
+ tmp := & Node {}
56
+ tmp = n .head
57
+ for (i - 1 > 0 && tmp != nil ) {
58
+ tmp = tmp .Next
59
+ i --
60
+ }
61
+ if tmp == nil {
62
+ panic ("error" )
63
+ }
64
+ if tmp .Next != nil {
65
+ next := tmp .Next
66
+ tmp .Next = & Node {
67
+ value : elem ,
68
+ Next : next ,
69
+ }
70
+ } else {
71
+ tmp .Next = & Node {
72
+ value : elem ,
73
+ Next :nil ,
74
+ }
75
+ }
76
+ n .length ++
77
+ }
78
+
79
+ func (n * nodeList ) Delete (i , elem int ) {
80
+ tmp := & Node {}
81
+ tmp = n .head
82
+ for (i - 1 > 0 && tmp != nil ) {
83
+ tmp = tmp .Next
84
+ i --
85
+ }
86
+ if tmp == nil {
87
+ panic ("error" )
88
+ }
89
+ if tmp .Next != nil {
90
+ tmp .Next = tmp .Next .Next
91
+ }
92
+ n .length --
93
+ }
94
+
95
+ func (n * nodeList ) Query (elem int ) int {
96
+ tmp := & Node {}
97
+ tmp = n .head
98
+ i := 1
99
+ for (tmp .Next != nil ) {
100
+ if tmp .Next .value == elem {
101
+ return i
102
+ }
103
+ tmp = tmp .Next
104
+ i ++
105
+ }
106
+ return - 1
107
+ }
108
+
109
+ func (n * nodeList ) Diskpaly () {
110
+ tmp := n .head
111
+ for tmp .Next != nil {
112
+ fmt .Printf ("%v" , tmp .Next .value )
113
+ }
114
+ fmt .Printf ("\n " )
115
+ }
116
+
117
+ func (n * nodeList ) Update (i , elem int ) bool {
118
+ tmp := n .head
119
+ k := 1
120
+ for tmp .Next != nil {
121
+ if k == i {
122
+ tmp .Next .value = elem
123
+ return true
124
+ }
125
+ tmp = tmp .Next
126
+ k ++
127
+ }
128
+ return false
129
+ }
130
+
131
+
File renamed without changes.
You can’t perform that action at this time.
0 commit comments