modernize std::deque

* use a proper exported data type with private fields
* implement core::container::Container
* use the current constructor convention
* use explicit self
* get rid of DVec and the mutable fields

Closes #2343
This commit is contained in:
Daniel Micay 2013-02-16 17:55:55 -05:00
parent 8d8c25b825
commit b47e1e9eda
3 changed files with 119 additions and 144 deletions

View file

@ -23,7 +23,6 @@ use std::time;
use std::oldmap;
use std::oldmap::Map;
use std::oldmap::HashMap;
use std::deque;
use std::deque::Deque;
use std::par;
use core::io::WriterUtil;
@ -124,18 +123,18 @@ fn bfs(graph: graph, key: node_id) -> bfs_result {
let mut marks : ~[node_id]
= vec::from_elem(vec::len(graph), -1i64);
let Q = deque::create();
let mut q = Deque::new();
Q.add_back(key);
q.add_back(key);
marks[key] = key;
while Q.size() > 0 {
let t = Q.pop_front();
while !q.is_empty() {
let t = q.pop_front();
do graph[t].each() |k| {
if marks[*k] == -1i64 {
marks[*k] = t;
Q.add_back(*k);
q.add_back(*k);
}
true
};

View file

@ -11,10 +11,9 @@
// except according to those terms.
extern mod std;
use std::deque;
use std::deque::Deque;
pub fn main() {
let Q = deque::create();
Q.add_back(10);
let mut q = Deque::new();
q.add_back(10);
}