{"_id":"abstract-data-types","_rev":"40-e4e43172c789489096bcf37bf026e2d9","name":"abstract-data-types","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type, Queue, Linked List, Stack, Binary Tree an Binary Search Tree.","dist-tags":{"latest":"0.1.18"},"versions":{"0.1.0":{"name":"abstract-data-types","version":"0.1.0","description":"This module implements the abstract data type Queue. All the standard Queue operations have been implemented (create, enqueue, dequeue, front & isEmpty).","keywords":["abstract","data","type","queue"],"homepage":"https://github.com/gozumi/adt-queue","bugs":{"url":"https://github.com/gozumi/adt-queue/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"adt-queue.js","directories":{"test":"./test","example":"./example"},"repository":{"type":"git","url":"http://github.com/gozumi/adt-queue/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.0","_shasum":"37f3a84d8ef56f6e9618da842e79c2886d4f3009","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"37f3a84d8ef56f6e9618da842e79c2886d4f3009","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.0.tgz","integrity":"sha512-SG/9dHNGrOJGpjy7EFzZSmvCJg8nmZ9yQuCuT3pObNDb7n22s1E/POzyehzaiwNCQSfD0duZoVrR0gT1FXvRWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIERz8sBx6Tv53z9U2QcweIvE5oClaoUtuM0aqkKmR2GOAiAU4+hGblnsO2/igiabdqgRGSOQNPMWSsIJPE973tE3DQ=="}]}},"0.1.1":{"name":"abstract-data-types","version":"0.1.1","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type"],"homepage":"https://github.com/gozumi/adt-queue","bugs":{"url":"https://github.com/gozumi/adt-queue/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/adt-queue/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.1","_shasum":"e74c0eab393e2697d4028ea0f0dfc3b96a1be3ec","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"e74c0eab393e2697d4028ea0f0dfc3b96a1be3ec","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.1.tgz","integrity":"sha512-qL85baLIdbaRz589cZLSAwMFqn3M1kzpNUedUzdV+20WbVO7uAvwtte6/2ydX2aq9S0pbWVvSDg6PGMNzYhHVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMk2dGf8Pap60MA+SQxFtbmfvxld7j2apYQ727L1SN/wIgfOIkNs9yk05W2lJ/hVpVFKFqEFFPqx4vzMDlq63cWPw="}]}},"0.1.2":{"name":"abstract-data-types","version":"0.1.2","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type"],"homepage":"https://github.com/gozumi/adt-queue","bugs":{"url":"https://github.com/gozumi/adt-queue/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/adt-queue/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.2","_shasum":"c308c36030ede22e8c7b428d31335cd8f37da102","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"c308c36030ede22e8c7b428d31335cd8f37da102","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.2.tgz","integrity":"sha512-KRgUbLWOJuCoASGBEE6sZrsgJswqO4g7HAsBVNLs2GRdF6UMUfFPgI3f4oW8687AKfx8iNJDVTBxnCFo0gI0Qg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH0V7ivkWAUMcXxVEeRT1GEF51ftU1U5Qry4XHclrIuDAiEA2asydkPmkjo3S+qjG3Ibo5K1v0DcOlLV4xhpjnntKxw="}]}},"0.1.3":{"name":"abstract-data-types","version":"0.1.3","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type"],"homepage":"https://github.com/gozumi/adt-queue","bugs":{"url":"https://github.com/gozumi/adt-queue/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/adt-queue/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.3","_shasum":"1996ec83710591980e460e038deab29b204efda9","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"1996ec83710591980e460e038deab29b204efda9","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.3.tgz","integrity":"sha512-I6CCe4Q4OblaUVj56F8AacutmYow5WDegGDSb8/dpmpbRfmWXqMFm1+x5Lm9uMGGeHvPmqAhWK8GiyDH/Tbllw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClAP//uaYc9ENMdMq3udQjT7PXPB9CFhXeQtHN8smkdwIgSm3AIonip40vpmE2JcR0qhbeTr0riwPhnKLQyD+bXnQ="}]}},"0.1.4":{"name":"abstract-data-types","version":"0.1.4","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type"],"homepage":"https://github.com/gozumi/adt-queue","bugs":{"url":"https://github.com/gozumi/adt-queue/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/adt-queue/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.4","_shasum":"8cb05243c8eb0b0fee52a948493feea988afa687","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"8cb05243c8eb0b0fee52a948493feea988afa687","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.4.tgz","integrity":"sha512-NaUDfqdOkusoO+yZnszITQ8kTYVJR+JUTckClXgk7hyeeU0b+mufCdxvz/8le067UoebVFPJoUNs+yGcbI5Vng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBqTiuoqY2mLcG8XCYy6Vb+vHWFxV3a1GBuASPDV6OJrAiBw9LYcOKXan14MUiBoInkZpisDHqdtLu7zrjA1cxMEWQ=="}]}},"0.1.5":{"name":"abstract-data-types","version":"0.1.5","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type"],"homepage":"https://github.com/gozumi/adt-queue","bugs":{"url":"https://github.com/gozumi/adt-queue/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/adt-queue/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.5","_shasum":"648182933e8694157bab7b6a36ded1501f287c64","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"648182933e8694157bab7b6a36ded1501f287c64","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.5.tgz","integrity":"sha512-rdn0gEzfUbOV96m1jypmL8FVAgbdhM1dFFeiBptKpIUjstWFYaZK0zOGB+385rSv4tvgYMSORIBhOtJZ7ASLMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPjjidcrNaTJAxo1a06qFspi4AWzU/l3EKzPa6itPDWQIgM/VZOd5nWkp/ZVo215+kMdBPg+sG+s1EX+Gmcc9WaO4="}]}},"0.1.6":{"name":"abstract-data-types","version":"0.1.6","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list"],"homepage":"https://github.com/gozumi/adt-queue","bugs":{"url":"https://github.com/gozumi/adt-queue/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/adt-queue/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.6","_shasum":"ea95d7f7e42ff45350bca774341e68c5a26b57ca","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"ea95d7f7e42ff45350bca774341e68c5a26b57ca","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.6.tgz","integrity":"sha512-HkY+jFP5IMI2OmomeQMtrPOpeZjNsBUNzu+Mt+xYbiqUkWXvJYNqpak+Un88xLs22X/jDiFHeuaN3vu/QgHOGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFEoiaAFGJcNQZ08YyEp7Omji2NV7ijkUGcjdf8/mRxTAiEAqgWDi6/XmNkIXTVULYIfu7JymUBIm0cCZzluLQI1Dgg="}]}},"0.1.7":{"name":"abstract-data-types","version":"0.1.7","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/adt-queue.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.7","_shasum":"08cf35ac4cb498d8ca97ac977cf3d2eda67e11bd","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"08cf35ac4cb498d8ca97ac977cf3d2eda67e11bd","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.7.tgz","integrity":"sha512-Jm/aTL4bI55Wou/miaLuVp0kq/vi1RB9Ck3urlZSV0MXFzpprnAB3DDe1ToBlPi36J09n+k+COCWtzEuUqTwOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBrz+vAiD1MdI63yyH3sn1EDImOoi/ajVp/7UvxXKeWmAiEA/2+ts/8PaGzXSfHAFBDwA147u5XqHbxF9MEuWLnnff8="}]}},"0.1.8":{"name":"abstract-data-types","version":"0.1.8","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.8","_shasum":"c0658dff9fe47a36d73809fb9c5b966a7ade8350","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"c0658dff9fe47a36d73809fb9c5b966a7ade8350","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.8.tgz","integrity":"sha512-2m9QduoFfnR2kvny/ontdbQS+O1GxX2juJE3xrcRV9IBN2t1AnHY7CFfaoWO9Rdbqyd62GRo9yLM2RMCkjPScA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFxXvHbHogRd1UCZTR8MuYAQvN1RnAqBpTrWuQBxriRGAiEAqvZ4jkBRcaQh8SGYR0qk7RUiGEbfS5QhUqyyZ0TQwkA="}]}},"0.1.9":{"name":"abstract-data-types","version":"0.1.9","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list","stack"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.9","_shasum":"dba6d095fb9ad67699bd375ee9013087824b4f3f","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"dba6d095fb9ad67699bd375ee9013087824b4f3f","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.9.tgz","integrity":"sha512-avbMMuSY+tpw0KXdhP21vgy+x0ypl6eBfbXVyhNR8CTlb94466M0ipzhlF4EtcPyuCizCphb3jTFwYagQfDH1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB6xS2fhDQf7NuxxGGhQxyA12kAl/QalL8uZ1AHINt5JAiEAxO9LfpXyYqdyY10Ox80hs1GD5dboxFLU25QnogVq6U0="}]}},"0.1.10":{"name":"abstract-data-types","version":"0.1.10","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list","stack"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.10","_shasum":"7841707a3a9ef9002acb083373a3d9fbae4f533e","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"7841707a3a9ef9002acb083373a3d9fbae4f533e","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.10.tgz","integrity":"sha512-Gg08Pf/SRqcMUkHkAJvBmVuHIAg2mIXyaikZfmRXHj1CD3VddJKG2ykEGfU892p7tLTXt6N1tq7UfnuJvi4IUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGZ+NKoG2keaO64yqenk04ZZHaj3FZ8gE7kq8hUl8ZX8AiBCW/sWzeyc004p8cd3E850GYfhi+NhqTLA+sYyOfdvsQ=="}]}},"0.1.11":{"name":"abstract-data-types","version":"0.1.11","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list","stack"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.11","_shasum":"55eed005f737f8376473b215cff50e8955918843","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"55eed005f737f8376473b215cff50e8955918843","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.11.tgz","integrity":"sha512-1ALwq6OqZCuYyl3vDUFIRgiNmG7MaUlUHxhXYvc5VSA695C0yIlGR0vcggrlsVzec4XsbxtpFF43uKuvVGJ5+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFIxiVlnueeMz+sqOSUoVvLdjbfRBxollLRG8yWFBZa0AiAXntFJVzq89Cf6oA452EUCmBvkGtO+Hd7YyZCRWsCtsQ=="}]}},"0.1.12":{"name":"abstract-data-types","version":"0.1.12","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list","stack"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.12","_shasum":"656772bd3548f531679299e01d5c18e786a6f880","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"656772bd3548f531679299e01d5c18e786a6f880","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.12.tgz","integrity":"sha512-GFe+j4RW5/+iyzcRQLmyrASdoLCHzV+CalDtw/EH+qj1TH/nd6Tv0B1mltEKVnhVCzxPUqi6q7o6A6tLq64rZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuL+VwIj3CGHL2+yxLHFQNIkuXzqZbck8mdQ/9AQhaBAIgSumXTx6PvBW19jElcaDCPJm3n02YJ4xQvow9hDx6m0Q="}]}},"0.1.13":{"name":"abstract-data-types","version":"0.1.13","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list","stack"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.13","_shasum":"f64fd23f99bd7a0bcefa28a111186342ee243620","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"f64fd23f99bd7a0bcefa28a111186342ee243620","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.13.tgz","integrity":"sha512-uazZjnVv2sKvkMyJj2Q9KdpiBnHQZ6Zi1GbfnCzkcUnf7eUiD+hCAG6ovs8XHRwkLc97HqHl+u5g0AzIaKIXmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB42NlESk5plyVajLjWlVyp4zdhcMJvQ1l2hiyUcbaz7AiAWwxsz26YBN6mkzrBG7dHcXWrPXd5tL6GpGoJaWMgATg=="}]}},"0.1.14":{"name":"abstract-data-types","version":"0.1.14","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list","stack"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.14","_shasum":"92f9b94b1c7f908e52b93936b38f9f3baad8ae9b","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"92f9b94b1c7f908e52b93936b38f9f3baad8ae9b","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.14.tgz","integrity":"sha512-pONE/uSxmzPioG5IN6wsvszEEzTHEKWNagnItrvAuATxcYoYDFh8ARVyfpYMJwhy/V0TX5qWg1T0lWMqRYm4MQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIELP2sx96PDV2sK9uljwXVKfnLGj2jij8CuvfH1rAS7YAiBynmAwQCSKjZde0Etx/wccSSKeELvvV2xM7/drdDKPlg=="}]}},"0.1.15":{"name":"abstract-data-types","version":"0.1.15","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","link list","linked","list","stack","binary tree","binary","tree","binary, search tree","search tree","search"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.15","_shasum":"b5e4a3c047fdf04df4d4d5b00619ddf494b2000d","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"b5e4a3c047fdf04df4d4d5b00619ddf494b2000d","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.15.tgz","integrity":"sha512-4svAppaJJUim8pA/56fryKxDn2E1aWG7npJqBoZg++HRZTB5kAh9eR7Q1kicxQL6uawZTc0st7R1cnqxg9s79w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRIeZ0LvOMjxmyC8aD3Pe2n5YEbGEWVJJZT82Ywm4uigIhANzdTrwBfb5AAICtwtYexDrghrxTBzcw+iFyk9lHM43e"}]}},"0.1.16":{"name":"abstract-data-types","version":"0.1.16","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type Queue.","keywords":["abstract","data","type","queue","adt","abstract data type","abstract-data-type","link list","linked","list","stack","binary tree","binary-tree","binary","tree","binary search tree","binary-search-tree","search tree","search"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.16","_shasum":"8f2d4f459f87006294d5d49cc5fffbeaa04ee8ca","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"8f2d4f459f87006294d5d49cc5fffbeaa04ee8ca","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.16.tgz","integrity":"sha512-PdMWq24miQiisw3Pn0LaZFho3GVu/iI+THzVQUdc81ZzvlgoQjNRkfjYtTsnB81kWjiz66evCMYcz0Pm9WS9Gg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnaR527Wt1oLHdHK/ysGOIpt/xo+2TqFfbffOFBbUdLgIhAMKeAcYJtrb7rqF1FP19Rqur8vHlLN8pAGRbG5IS6mcZ"}]}},"0.1.17":{"name":"abstract-data-types","version":"0.1.17","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type, Queue, Linked List, Stack, Binary Tree an Binary Search Tree.","keywords":["abstract","data","type","queue","adt","abstract data type","abstract-data-type","link list","linked","list","stack","binary tree","binary-tree","binary","tree","binary search tree","binary-search-tree","search tree","search"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"_id":"abstract-data-types@0.1.17","_shasum":"82b67de707459462e05c3ea4ee58e691dc5889dc","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"82b67de707459462e05c3ea4ee58e691dc5889dc","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.17.tgz","integrity":"sha512-sInmo3qg+Uh2dfJlG+bzCBj3Dvx7JwlnhIWezCvwA27LtI6QI0APp2uoAGKk17xjSe4LfN3ClpmQOjCkzjVW/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsyjjrnh9RoRPvBrKGV5tUUU7Y4KuxsCbkzzxuyg4rwAiEA9dupdF8Xt4hxeArLHyj3TFBIPdxYhZEEPts/K+8Qq3A="}]}},"0.1.18":{"name":"abstract-data-types","version":"0.1.18","description":"This module aims to provide a full suite of abstract data types. At present it provides the abstract data type, Queue, Linked List, Stack, Binary Tree an Binary Search Tree.","keywords":["abstract","data","type","queue","adt","abstract data type","abstract-data-type","link list","linked","list","stack","binary tree","binary-tree","binary","tree","binary search tree","binary-search-tree","search tree","search"],"homepage":"https://github.com/gozumi/abstract-data-types","bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"main":"index.js","directories":{"lib":"./lib"},"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"scripts":{"test":"mocha --reporter spec","test-watcher":"mocha -w --reporter spec","cover":"node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- -R spec","benchmark":"node_modules/matcha/bin/matcha"},"engines":{"node":"*","npm":"*"},"dependencies":{},"devDependencies":{"mocha":"1.21.x","chai":"1.9.x","istanbul":"0.3.x","matcha":"0.5.x"},"gitHead":"8a9e83643c20d32065e3b2ce7f51580033492d63","_id":"abstract-data-types@0.1.18","_shasum":"073813f590f0206c4709ecc7e33e981e0573bff1","_from":".","_npmVersion":"1.4.26","_npmUser":{"name":"gozumi","email":"ian@gozumi.com"},"maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"dist":{"shasum":"073813f590f0206c4709ecc7e33e981e0573bff1","tarball":"https://registry.npmjs.org/abstract-data-types/-/abstract-data-types-0.1.18.tgz","integrity":"sha512-FdSvc2NU9WIudfv+2Q7BXTXCr/3IIMjDA7PQjTA/Xp2GX/poYjvK6Jhw99xwCU6FJJUmHF+Muiv4SzJevp1Hjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDbvlnT3sRTX5+U2G1Kmp/i7oayQ9TVfNosD471BFF3KAiEA2RNFht3Aflq6jOUnWZoAXp1w3QY7vE//SxsjTPuyqNg="}]}}},"readme":"<img src=\"logo.png\" alt=\"Gozumi abstract data types\" align=\"right\">\n\nabstract-data-types\n===================\n\nThe future of this module is that it will be able to return instances of the following abstract data types:\n\n- __Queue__ _This is currently implemented_\n- __Linked List__ _This is currently implemented_\n- __Stack__ _This is currently implemented_\n- __Binary Tree__ _This is currently implemented_\n- __Binary Search Tree__ _This is currently implemented_\n- __Graph__\n- __Hash Table__\n- __Heap__\n\n\nInstallation\n============\n\n\t$ npm install abstract-data-types\n\n\nGetting Started\n================\n\nThe individual abstract data types are instantiated from factory functions that exist as properties of the _abstract-data-types_ module. The module can be accessed as follows.\n\n\tvar adt = require('abstract-data-types');\n\n\nThe individual factory functions can be used to create instances of the abstract data types like this.\n\n\tvar q   = adt.createQueue();            // To create an empty Queue\n\tvar ll  = adt.createLinkedList();       // To create an empty Linked List\n\tvar s   = adt.createStack();            // To create an empty Stack\n\tvar bt  = adt.createBinaryTree();       // To create an empty Binary Tree\n\tvar bst = adt.createBinarySearchTree(); // To create an empty Binary Search Tree\n\tvar g   = adt.createGraph();            // To create an empty Graph\n\tvar ht  = adt.createHashTable();        // To create an empty Hash Table\n\tvar h   = adt.createHeap();             // To create an empty Heap\n\n\n\nThe rest of this document explains each of the operations that can be performed these abstract data type instances.\n\n\n\n\nQueue\n-----\n\nThis _Queue_ is implements all the standard Queue operations. These are:\n\n- __enqueue__\tadds a new item to the back of the queue\n- __dequeue__\treturns the item at the front of the queue and removes it from the queue\n- __front__\t\treturns the item at the front of the queue\n- __size__\t\treturns the number of items in the queue\n- __isEmpty__\tdetermines whether the queue is empty and returns true if it is and false otherwise\n\n\n\n\n#### Enqueue\n\nThe _enqueue_ operation adds a new item to the back of the queue. To do this call the _enqueue_ method on a Queue instance passing it the data item you wish to add to the Queue.\n\n\tq.enqueue(item);\n\n\n#### Dequeue\n\nThe _dequeue_ method returns the item at the front of the queue and removes that item from the queue. To do this call _dequeue_ on a queue object.\n\n\tvar frontItem = q.dequeue();\n\nIf _dequeue_ is called on an empty queue, the following error is thrown.\n\n\tnew Error('adt-queue.dequeue(): Tried to dequeue an empty queue!');\n\n\n#### Front\n\n\nThe _front_ method returns the item at the front of the queue, but unlike _dequeue_ it does not remove it from the queue.\n\n\tvar frontItem = q.front();\n\nIf _front_ is called on an empty queue, the following error is thrown.\n\n\tnew Error('adt-queue.front(): Tried to get the front of an empty queue!');\n\n\n#### IsEmpty\n\nThe _isEmpty_ method is a boolean function that, when called on a queue, returns _true_ if the queue is empty and false otherwise.\n\n\tq.isEmpty();\n\n\nLinked List\n-----------\n\nThe _Linked List_ implements all of the standard Linked List functions. These are given below:\n\n- __add__\t\tadds a new item to the list at a specific position\n- __remove__\tremoves an item from the list at a specific position\n- __get__\t\treturns the item at at a specific position in the list\n- __size__\t\treturns the number of items in the List\n- __isEmpty__\tdetermines whether the List is empty and returns true if it is and false otherwise\n\nThe postion index starts from 0.\n\n\n#### Add\n\nThe add method takes the item to be added to the list and the position that the item should be added in. If the position is less than or equal to 0, the item is added to the front of the list. If the position is greater than or equal to the size of the list, the item is added to the end of the list.\n\n\tll.add(position, item);\n\n\n\n#### Remove\n\nThe remove method removes the item at a specific position in the list. If the position requested is less than 0 or geater then or equal to the length of the list, an error is thrown.\n\n\tll.remove(position);\n\n\n#### Get\n\nThe get method returns the item at a specific position in the list. If the position requested is less than 0 or geater then or equal to the length of the list, an error is thrown.\n\n\tll.get(position);\n\n\n#### Size\n\nThe size method returns the number of items in the list.\n\n\tll.size();\n\n\n#### IsEmpty\n\nThe _isEmpty_ method is a boolean function that, when called on a list, returns _true_ if the list is empty and false otherwise.\n\n\tll.isEmpty();\n\n\nStack\n-----\n\nThe _Stack_ implements all of the standard Stack functions. These are given below:\n\n- __push__\t\tadds a new item to the top of the stack\n- __pop__\t\treturns the item at the top of the stack and removes it from the stack\n- __top__\t\treturns the item at the top of the stack and leaves it on the stack\n- __size__\t\treturns the number of items in the stack\n- __isEmpty__\tdetermines whether the stack is empty and returns true if it is and false otherwise\n\n\n\n#### Push\n\nThe push method adds a new item to the top of the stack. It also returns the stack so that push opertations can be chained.\n\n\ts.push(item);\n\n\n\n#### Pop\n\nThe pop method returns the item at the top of the stack and removed it from the stack.\n\n\ts.pop();\n\n\n#### Top\n\nThe pop method returns the item at the top of the stack and leaves it on the stack.\n\n\ts.top();\n\n\n#### Size\n\nThe size method returns the number of items in the stack.\n\n\ts.size();\n\n\n#### IsEmpty\n\nThe _isEmpty_ method is a boolean function that, when called on a stack, returns _true_ if the stack is empty and false otherwise.\n\n\ts.isEmpty();\n\n\n\nBinary Tree\n-----------\n\nThe _Binary Tree_ in this module implements the standard methods of the Binary Tree abstract data type. These methods are:\n\n- __isEmpty__       determines whether the tree is empty and returns true if it is and false otherwise\n- __getRootItem__   returns the item at the root of the tree\n- __setRootItem__   updates the item at the root of the tree\n- __getLeftTree__   returns the left sub tree\n- __getRightTree__  returns the Right sub tree\n- __attachLeft__    attaches at tree or an item as the left sub tree\n- __attachRight__   attaches at tree or an item as the right sub tree\n- __detachLeft__    removes the left sub tree\n- __detachRight__   removes the right sub tree\n- __count__         returns the number of nodes in the tree\n\n\n#### Creation\n\nThe factory function used to create a new _Binary Tree_ can be called in the following 2 ways:\n\n- __By passing in no arguments__ - this will create an empty tree.\n\t\n\tvar bt = adt.createBinaryTree();\n\n- __By passing in and item__ - this will create a single node tree with the item at the root.\n\n\tvar bt = adt.createBinaryTree(item);\n\n\n#### Is Empty\n\nThe _isEmpty_ method is a boolean function that, when called on a tree, returns _true_ if the tree is empty and false otherwise.\n\n\tbt.isEmpty();\n\n\n#### Get Root Item\n\nThis method returns the item at the root of the tree and is called as follows.\n\n\tbt.getRootItem();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-tree.getRootItem(): Tried to get the root item of an empty tree');\n\n\n\n#### Set Root Item\n\nThis method puts an item at the root of the tree and is called as follows.\n\n\tbt.setRootItem(item);\n\n\n#### Get Left Tree\n\nThis method returns the left sub tree.\n\n\tbt.getLeftTree();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-tree.getLeftTree(): Tried to get the left tree of an empty tree');\n\n\n\t\n#### Get Right Tree\n\nThis method returns the right sub tree.\n\n\tbt.getRightTree();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-tree.getLeftTree(): Tried to get the left tree of an empty tree');\n\n\t\n#### Attach Left Tree\n\nThis method can be called by either passing in another _Binary Tree_, or by passing in an item that is not a _Binary Tree_. \n\nIf a _Binary Tree_ is passed in, that tree will be attached as the left sub tree. The method is called like this.\n\n\tbt.attachLeft( tree );\n\nIf a non _Binary Tree_ item is passed in, a new single node tree is created out of that item and this new tree is attached as the left sub tree.\n\n\tbt.attachLeft( item );\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-tree.attachLeft(): Attempt to attach a left sub tree to an empty tree');\t\n\n\n\n#### Attach Right Tree\n\nThis method can be called by either passing in another _Binary Tree_, or by passing in an item that is not a _Binary Tree_. \n\nIf a _Binary Tree_ is passed in, that tree will be attached as the right sub tree. The method is called like this.\n\n\tbt.attachRight( tree );\n\nIf a non _Binary Tree_ item is passed in, a new single node tree is created out of that item and this new tree is attached as the right sub tree.\n\n\tbt.attachRight( item );\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-tree.attachRight(): Attempt to attach a right sub tree to an empty tree');\t\n\n\n\n#### Detach Left Tree\n\nThis method is used to remove the left sub tree from the main tree. It also returns the tree that it detaches. it is called as follows.\n\n\tbt.detachLeft();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-tree.detachLeft(): Attempt to detach the left sub tree of an empty tree');\t\n\n\n#### Detach Right Tree\n\nThis method is used to remove the right sub tree from the main tree. It also returns the tree that it detaches. it is called as follows.\n\n\tbt.detachRight();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-tree.detachRight(): Attempt to detach the right sub tree of an empty tree');\t\n\n\n#### Count\n\nThis method returns the number of nodes in the tree.\n\n\tbt.count();\n\n\nBinary Search Tree\n------------------\n\nThe _Binary Search Tree_ implements the following Binary Search Tree methods.\n\n- __insert__        inserts a new item into the search tree in the correct position, maintaining the validity of the binary search tree\n- __delete__        removes an item from the tree maintaining the validity of the binary search tree\n- __retrieve__      returns a specific item in the tree\n- __isEmpty__       determines whether the tree is empty and returns true if it is and false otherwise\n- __getRootItem__   returns the item at the root of the tree\n- __getLeftTree__   returns the left sub tree\n- __getRightTree__  returns the Right sub tree\n- __count__         returns the number of nodes in the tree\n\n\n\n#### Insert\n\nThis method inserts an item into the tree and makes sure that the validity of the binary seach tree is maintained.\n\n\tbst.insert(item);\n\nThe search key used to determine the position of an item within the binary search tree as it is being inserted is derived from the item in the following way.\n\n1. If the item is null, the item is not inserted into the tree and the following error is thrown.\n\n\tthrow new Error('adt-binary-search-tree utils.getKey(): item is null');\n\n2. If the item is an object that does not have a property named 'key', the item is not inserted into the tree and the following error is thrown.\n\n\tthrow new Error('adt-binary-search-tree utils.getKey(): item has no key');\n\n3. If the item is an object with a property named 'key' and that key property is null, the item is not inserted into the tree and the following error is thrown\n\n\tthrow new Error('adt-binary-search-tree utils.getKey(): item is null');\n\n4. If the item is an object with a property named 'key' and that key property is an object, the item is not inserted into the tree and the following error is thrown\n\n\tthrow new Error('adt-binary-search-tree utils.getKey(): item.key is an object');\n\n5. If the item is an object with a property named 'key' and this key property is not an object and is not null, the value of this key property is used as the item's search key within the tree.\n\n6. If the item is not an object and is not null, the item value is used as the item's search key within the tree.\n\n\n\n#### Delete\n\nThis method removes the item identified by the parameter 'key' from the tree and makes sure that the validity of the binary seach tree is maintained.\n\n\tbst.delete(key);\n\nIf the key does not exist in the tree, the following error is thrown.\n\n\tthrow new Error('adt-binary-search-tree.delete(): The key is not in the tree');\n\n\n\n#### Retrieve\n\nThis method returns the item identified by the parameter 'key' from the tree and leaves the tree unchanged.\n\n\tbst.retieve(key);\n\nThe method returns _null_ if the key does not exist in the tree.\n \n\n\n#### Is Empty\n\nThe _isEmpty_ method is a boolean function that, when called on a tree, returns _true_ if the tree is empty and false otherwise.\n\n\tbst.isEmpty();\n\n\n#### Get Root Item\n\nThis method returns the item at the root of the tree and is called as follows.\n\n\tbst.getRootItem();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-search-tree.getRootItem(): Tried to get the root item of an empty tree');\n\n\n\n#### Get Left Tree\n\nThis method returns the left sub tree.\n\n\tbst.getLeftTree();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-search-tree.getLeftTree(): Tried to get the left tree of an empty tree');\n\n\n\t\n#### Get Right Tree\n\nThis method returns the right sub tree.\n\n\tbts.getRightTree();\n\nIf this method is called on an empty tree it throws an error as follows.\n\n\tthrow new Error('adt-binary-search-tree.getLeftTree(): Tried to get the left tree of an empty tree');\n\n\n#### Count\n\nThis method returns the number of nodes in the tree.\n\n\tbst.count();\n\n\n\n\t\n","maintainers":[{"name":"gozumi","email":"ian@gozumi.com"}],"time":{"modified":"2022-06-13T02:20:20.390Z","created":"2014-08-26T20:16:58.361Z","0.1.0":"2014-08-26T20:16:58.361Z","0.1.1":"2014-08-26T21:53:04.668Z","0.1.2":"2014-08-28T19:53:25.402Z","0.1.3":"2014-08-28T20:36:37.164Z","0.1.4":"2014-08-30T20:10:35.206Z","0.1.5":"2014-08-30T20:12:49.427Z","0.1.6":"2014-08-30T20:29:55.049Z","0.1.7":"2014-08-31T12:05:54.828Z","0.1.8":"2014-08-31T12:08:05.398Z","0.1.9":"2014-08-31T14:26:29.581Z","0.1.10":"2014-08-31T14:29:18.340Z","0.1.11":"2014-08-31T14:36:01.375Z","0.1.12":"2014-09-02T21:51:02.052Z","0.1.13":"2014-09-02T21:52:42.962Z","0.1.14":"2014-09-03T10:17:40.343Z","0.1.15":"2014-09-07T11:28:57.795Z","0.1.16":"2014-09-07T11:45:24.500Z","0.1.17":"2014-09-07T11:48:07.552Z","0.1.18":"2014-09-13T10:34:08.841Z"},"homepage":"https://github.com/gozumi/abstract-data-types","keywords":["abstract","data","type","queue","adt","abstract data type","abstract-data-type","link list","linked","list","stack","binary tree","binary-tree","binary","tree","binary search tree","binary-search-tree","search tree","search"],"repository":{"type":"git","url":"http://github.com/gozumi/abstract-data-types/abstract-data-types.git"},"author":{"name":"Ian Anderson","email":"ian@gozumi.com","url":"http://twitter.com/gozumi"},"bugs":{"url":"https://github.com/gozumi/abstract-data-types/issues"},"license":"MIT","readmeFilename":"readme.md"}