Skip to content

Commit 9950c72

Browse files
author
root
committedAug 10, 2020
add list
1 parent f9f13a1 commit 9950c72

File tree

4 files changed

+146
-0
lines changed

4 files changed

+146
-0
lines changed
 

Diff for: ‎cmd/lineTable/main.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
}

Diff for: ‎main.go renamed to ‎cmd/sort/main.go

File renamed without changes.

Diff for: ‎lineTable/listTable.go

+131
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
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.

0 commit comments

Comments
 (0)
Please sign in to comment.