Rust part21 at TECH
[2ch|▼Menu]
484:デフォルトの名無しさん
23/10/11 23:18:11.74 vJm7EO/F.net
>>441
>>430がVec使用だから同等でないという話ならばRustにもリンクリストがあるよ
リンクリストに特化したパターンマッチング構文や結合構文はないけれど
例えばTをCopyせずそのまま使うならば
use std::collections::LinkedList;
fn qsort<T: PartialOrd>(mut list: LinkedList<T>) -> LinkedList<T> {
 if let Some(pivot) = list.pop_front() {
  let (smaller, rest): (LinkedList<T>, LinkedList<T>) =
   list.into_iter().partition(|x| x < &pivot);
  // concat
  list = qsort(smaller);
  list.extend([pivot]);
  list.extend(qsort(rest));
 }
 list
}
fn main() {
 let list = LinkedList::from([9, 0, 7, 3, 6, 1, 2, 4, 8, 5]);
 println!("{:?}", list);
 println!("{:?}", qsort(list));
}


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

288日前に更新/259 KB
担当:undef