728x90
728x170
■ Box<T> 구조체를 사용해 단방향 연결 리스트를 만드는 방법을 보여준다.
▶ 예제 코드 (RS)
pub struct Node
{
data : i64,
link : Option<Box<Node>>
}
fn node(data : i64, link : Option<Box<Node>>) -> Option<Box<Node>>
{
let node : Node = Node { data, link };
let node_box : Box<Node> = Box::new(node);
return Some(node_box);
}
fn main()
{
let mut node_box1 : Box<Node> = node(10, None).unwrap();
let mut node_box2 : Box<Node> = node(20, None).unwrap();
let node_box3 : Box<Node> = node(30, None).unwrap();
node_box2.link = Some(node_box3);
node_box1.link = Some(node_box2);
let first_node_box : Box<Node> = node_box1;
let mut current_pointer : &Box<Node> = &first_node_box;
loop
{
println!("{}", current_pointer.data);
match current_pointer.link
{
None => break,
Some(ref link) => current_pointer = &link,
}
}
}
/*
10
20
30
*/
728x90
그리드형(광고전용)
'Rust > Common' 카테고리의 다른 글
[RUST/COMMON] RefCell<T> 구조체 : borrow/borrow_mut 메소드 사용하기 (0) | 2023.06.12 |
---|---|
[RUST/COMMON] Rc<T> 구조체 : new/clone/strong_count 연관 함수 사용하기 (0) | 2023.06.12 |
[RUST/COMMON] Box<T> 구조체 : 단방향 연결 리스트 만들기 (기능 추가) (0) | 2023.06.12 |
[RUST/COMMON] Box<T> 구조체 : 값 T 구하기 (0) | 2023.06.10 |
[RUST/COMMON] Box<T> 구조체 : 열거형을 사용해 단방향 연결 리스트 만들기 (0) | 2023.06.10 |
[RUST/COMMON] macro_rules! 매크로 : 재귀 호출 매크로 만들기 (0) | 2023.06.10 |
[RUST/COMMON] macro_rules! 매크로 : 특정 값의 레이블을 구하는 매크로 만들기 (0) | 2023.06.10 |
[RUST/COMMON] macro_rules! 매크로 : HashMap 객체를 초기화하는 매크로 만들기 (0) | 2023.06.09 |
[RUST/COMMON] macro_rules! 매크로 : BASIC 언어의 for문 매크로 만들기 (0) | 2023.06.09 |
[RUST/COMMON] macro_rules! 매크로 : 가변 인수 매크로 만들기 (0) | 2023.06.08 |