通过js来实现数据结构中的链表。

最近又回到了数据结构与算法,发现差不多又忘了,但我觉得并没有什么大不了,学习不就是一个反复的过程吗。其实我还挺享受能够把一个知识点弄懂的感觉的。

function LinkedList() {
    //节点的构造函数,可以用于实例化一个节点
    function Node(data) {
        //节点的数据域
        this.data = data
        //节点的指针域
        this.next = null
    }
    //链表的头指针
    this.head = null
    //链表的长度
    this.length = 0
    //1.append方法
    LinkedList.prototype.append = function (data) {
        if (this.length === 0) {
            let newNode = new Node(data)
            this.head=newNode
        } else {
            var newNode=new Node()
            let currentNode=this.head
            while(currentNode.next!==null){
                currentNode=currentNode.next
            }
            currentNode.next=newNode
        }
        this.length+=1
    }
    //2.toString方法
    LinkedList.prototype.tostring = function () {
        let currentNode = this.head
        let TotalString=""
        while (currentNode) {
            TotalString+=currentNode.data+" "
            currentNode=currentNode.next
        }
        return TotalString
    }
}
var linkList1 = new LinkedList();
linkList1.append(1)
linkList1.append(2)
linkList1.append(3)
console.log(linkList1.tostring());
console.log(linkList1.head.next);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值