Zelsazgh 发表于 2007-6-8 17:29:08

Sorry.........看错了.....

duzhi5368 发表于 2007-6-8 17:34:55

呵呵,别在意: )一样的,开始我也在这里迷糊了好久,呵呵,vector中第一个元素索引是0,他传的参数却是1 ..

august 发表于 2007-6-9 04:58:10

vector   Stack这些到底是什么东东。。。

duzhi5368 发表于 2007-6-9 21:32:41

你现在做的就是个Vector,和链表不同的是,他是物理内存连续的,所以呢,你完全不需要任何的指针去记录下一个数据的地址,因为连续,所以允许你直接进行迭代器的++运算.就能找到下一个数据.
例如,内存保存是这样的 01 02 03 04...所以,只要你找到了01,下一个地址一定是02,直接迭代指针++就可以找到下一个地址.
但是List本身物理内存地址不连续,所以其结构内必须保存下一个数据的地址.
例如,内存保存是这样的 01 XX XX ...... XX 02 XX XX ... 03 ...
也就是说01之后,未必数据一定是02,可能是其他块的数据,所以,必须用->next指针去记录下一个数据的地址.
Stack是堆,和Queue队列对应的就是LIFO和FIFO了
意思就是说,Stack是L ast In First Out(后进先出),Queue对应的是First In First Out(先进先出).
怎么理解呢?先说队列吧,我们上公交车,要排队,现在上车了,按一般道理来说,就是先排队的先上车.
后来的自然是后进行处理,这就是队列,我们的插入是从队尾开始的,而真正数据调用时,则是从队首开始的,包括排序,查询,删除,全是从队首将数据一个一个取出,进行处理,再从队尾插入的.
Stack则正好相反,他可以想象为一个很窄死胡同,最先进入的人,是最后才能出来的,最后进入的人,可以第一个出来,这就是后进先出.
恩,详细的这东西,还是看专门的数据结构书吧,呵呵,我就自己的理解简单说了说,了解大概就好
页: 1 [2]
查看完整版本: 再来顺序表