美文网首页RUST编程
Rust编程知识拾遗:Rust 编程,实现简单的队列

Rust编程知识拾遗:Rust 编程,实现简单的队列

作者: 令狐壹冲 | 来源:发表于2020-04-14 19:48 被阅读0次

    视频地址

    头条地址:https://www.ixigua.com/i6765442674582356483
    B站地址:https://www.bilibili.com/video/av78062009?p=1
    网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1

    github地址

    github地址

    队列介绍

    队列,是一种只允许在一端进行插入操作,而在另一端进行删除操作的数据结构。 队列具有先进先出的特点,也叫做fifo。在队列中,允许插入的一端称为队尾,允许删除的一端称为队头。

    队列操作

    本文实现的队列,具有以下操作属性:

    • 初始化;
    • 入队;
    • 出队;
    • 求取队列长度。

    源码实现

    #[derive(Debug)]
    struct Queue<T> {
        qdata: Vec<T>,
    }
    
    impl <T> Queue<T> {
        fn new() -> Self {
            Queue{ qdata: Vec::new() }
        }
    
        fn enqueue(&mut self, item: T) {
            self.qdata.push(item);
        }
    
        fn dequeue(&mut self) ->Option<T> {
            let l = self.qdata.len();
    
            if l > 0 {
                let v = self.qdata.remove(0);
                Some(v)
            } else {
                None
            }
        }
    
        fn size(&self) -> usize {
            self.qdata.len()
        }
    }
    
    fn main() {
        let mut q = Queue::new();
        q.enqueue(1);
        q.enqueue(2);
        println!("{:?}", q);
        println!("size = {}", q.size());
    
        q.dequeue();
        println!("{:?}", q);
        println!("size = {}", q.size());
    
        q.dequeue();
        println!("{:?}", q);
        println!("size = {}", q.size());
    
        q.dequeue();
        println!("{:?}", q);
        println!("size = {}", q.size());
    }
    

    相关文章

      网友评论

        本文标题:Rust编程知识拾遗:Rust 编程,实现简单的队列

        本文链接:https://www.haomeiwen.com/subject/aqkxvhtx.html