比如A要买5个苹果,B要买3个苹果……
一会之后,C打算卖1个苹果,D要卖2个苹果……
那么C的1个应该跟A交易,D的两个也应该跟A交易,处于交易中,A还剩2个需要买,当A的完成之后,再进行B的匹配。
这个哪位大神有个人见解呢,我用C#开发的话,是不是该写一个控制台的定时任务呢
我懂你的意思,我觉得无需控制台的定时任务。你用数据结构就可以。
使用两个队列,一个是买苹果,一个是卖苹果。队列是先进先出的原则,一开始A先进队列a,B进队列a,C进队列b,D进队列b,然后C卖给A,C出队列b,这时候b队列的头就是D,D继续卖给A,D再出队列。直到A的完成之后,A出队列a,这个时候B就是队列a的头。
先进先出。想一想,我上面描述的有点乱。
您说的很清晰,只是我不知道如何用队列。我起码得建立两张表吧。买和卖。
@一只小小小的菜鸟: 逻辑上使用队列可以解决,不考虑实际应用场景。实际应用中,如果你要把交易的过程或者结果存入数据库中,那么久可以建表,而且也不知道实际应用中,买和卖的数据是怎么获得的,是通过数据库获得,还是通过接口获得,如何能够一个接着一个的输入到程序之中。 队列其实很简单,也有现成的模板类,比如java的queue类 ,简简单单的用几个函数就ok,q.front()取队列头元素,q.pop()队列头元素出队列,q.push()往队列尾插入元素
这... 交易所交易系统被称为小逻辑,这一届的学生还是很牛叉的。
如果想让买卖成立的话,时间不是最重要的,价格才是。
A要买的价格和C打算卖的价格不能匹配的话,交易是不成立的。
这是一个多年老股民的经验教训。
没错,这确实是交易所的逻辑,我看到他这种匹配机制,不知道他是如何实现的,所以打算问问大家,价格不一致问题可以排除,您有什么高见呢
用队列啊,买苹果队列的每个元素含有2个成员(元素标识、还需要的苹果数量),卖苹果类似
看来我得先百度一下队列的用法,具体还不知道怎么实现呢。