첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
------------------------------------------------------------------------------------------------------------------------------------------------------
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
그리드형(광고전용)
Posted by icodebroker
,