我在计算机科学课程中学习数据结构。
大学教授给我们分配了一个项目,在这个项目中,我们必须实现从0开始的每个数据结构,而不使用我们选择使用的编程语言已经提供的数据结构。
所有这些都是通过他的实验室部分考试所必需的:
-
对于每种数据结构,我们都必须开发多个已知的实现。
An istance : For the List data structure
We have to develop ArrayList, LinkedList and DoubleLinkedList in separate
classes and packages.
-
我们必须遵循已知的正式规范。
An istance : For the List class
We can only declare "data structure releated" members and attributes
Like create,delete,head,isEmpty,isLast,next,previous,insert,write,read,remove
我完成了那些,但是
我需要为每个数据结构将“服务函数”放在一个单独的类/文件中,并且它应该适用于它们的每个类(实现)。
然后按照上述距离:
我必须开发一个名为“ListServices”的类/文件,它应该“扩展”每个类,比如:
MyArray列表
MyLinkedList
MyDoubleLinkedList
对于服务,我指的是数据结构的“不需要”功能,例如:
printList() //it prints the whole list
goToList(position : Int) //goes to the position using Integers
sortList(whichsort : String, order : String) //whichsort = quicksort,mergesort and order ascending/descending
purgeList() //it deletes all the "dupled" elements(or the more than 2 occurances per element)
通常,我会在上面命名的每个类中这样定义它们:
class MyArrayList<T>{
.
.
.
fun printList(){}
}
class MyLinkedList<T>{
.
.
.
fun printList(){}
}
class MyDoubleLinkedList<T>{
.
.
.
fun printList(){}
}
import edu.uni.lists.MyArrayList as MyList //or whatever other implementation I will interchange instead of MyArrayList
fun main() {
val l1 = MyList<String> ()
l1.create() //init
if(l1.isEmpty())
println("List is empty")
l1.insert("11",l1.head())
l1.insert("10",l1.head())
l1.insert("9",l1.head())
l1.insert("8",l1.head())
l1.insert("7",l1.head())
l1.insert("69",l1.head())
l1.printList() //should print the whole list
}
无论我使用什么实现,printList()都将只使用数据结构运算符,而不使用其他任何运算符。
printList()的代码对于每个List实现都是相同的。
我不能把服务功能放在那里!
我需要将printlist()[和其他服务函数]从List实现中“移出”到另一个类或文件中。
我如何用Kotlin完成此请求?
谢谢大家。
附言:我不是英语母语者,如果我不明白你的意思,请随时提问,我会回复的!