interface IVector { return { number } mod ( ) : number ; return { IVector } add ( vector ) : IVector ; param { IVector } vector return { IVector } sub ( vector ) : IVector ; param { IVector } vector return { number } angle ( vector ) : number ; param { IVector } vector return { number } dotProduct ( vector ) : number ; param { IVector } vector return { IVector } product ( vector ) : IVector ; param { IVector } vector return { boolean } isHorizontal ( vector ) : boolean ; param { IVector } vector return { boolean } isVertical ( vector ) : boolean ; } interface IMatrix { param { IVector } matrix return { IMatrix } add ( matrix ) : IMatrix ; param { IVector } matrix return { IMatrix } sub ( matrix ) : IMatrix ; return { IMatrix } indentity ( ) : IMatrix ; param { IVector } matrix return { IMatrix } product ( matrix ) : IMatrix ; return { IMatrix } transform ( ) : IMatrix ; } interface IRank { param { number [ ] } data return { number [ ] } insertSort ( data ) : number [ ] ; param { number [ ] } data return { number [ ] } bubbleSort ( data ) : number [ ] ; param { number [ ] } data return { number [ ] } quickSort ( data ) : number [ ] ; param { number [ ] } data return { number [ ] } SelectSort ( data ) : number [ ] ; param { number [ ] } data return { number [ ] } mergeSort ( data ) : number [ ] ; } interface INode { } /**
 * List 是双向链表或单向链表 环形链表的统一接口
 */ interface IList { insert ( ) : INode ; find ( ) : INode ; remove ( ) : INode ; findPrevious ( ) : INode ; last ( ) : INode ; } interface IStack { param { number } item return { number } push ( item ) : number ; param { number } item return { number } pop ( item ) : number ; param { number } index return { any } indexOf ( index ) : any ; } interface ITree extends IList { }