From 78d0467e70bd9d1350f7ca87ab9032003c63a24f Mon Sep 17 00:00:00 2001 From: OsmanRodrigues Date: Thu, 27 Aug 2020 18:08:47 -0300 Subject: [PATCH] =?UTF-8?q?finaliza=C3=A7=C3=A3o=20dos=20exerc=C3=ADcios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- semana23/exercicios-aula75/README.md | 93 ++++++++++++++++++++ semana23/exercicios-aula75/package-lock.json | 69 +++++++++++++++ semana23/exercicios-aula75/package.json | 17 ++++ semana23/exercicios-aula75/src/index.ts | 88 ++++++++++++++++++ semana23/exercicios-aula75/tsconfig.json | 14 +++ 5 files changed, 281 insertions(+) create mode 100644 semana23/exercicios-aula75/README.md create mode 100644 semana23/exercicios-aula75/package-lock.json create mode 100644 semana23/exercicios-aula75/package.json create mode 100644 semana23/exercicios-aula75/src/index.ts create mode 100644 semana23/exercicios-aula75/tsconfig.json diff --git a/semana23/exercicios-aula75/README.md b/semana23/exercicios-aula75/README.md new file mode 100644 index 0000000..af8bf84 --- /dev/null +++ b/semana23/exercicios-aula75/README.md @@ -0,0 +1,93 @@ +## ExercĂ­cios Aula 75, semana 23 + +### 1. +r: +~~~typescript +class LinkedListNode{ + constructor(public value: any){} + next: LinkedListNode | null = null +} + +class LinkedList{ + start: LinkedListNode | null = null + + addToTail(value: any): void{ + if(this.start === null){ + this.start = new LinkedListNode(value) + return + } + let node = this.start + while(node && node.next !== null){ + node = node.next + } + node.next = new LinkedListNode(value) + } + + printAllElements(): void{ + let node = this.start + while(node.next !== null){ + console.log(node.value) + node = node.next + } + console.log(node.value) + } +} +~~~ + +### 2. +r: +~~~typescript +class Stack{ + elementsList: LinkedList | null = null + + isEmpty =(): boolean => this.elementsList === null + + push =(value: any): void =>{ + if(this.elementsList === null){ + this.elementsList = new LinkedList(new LinkedListNode(value)) + }else{ + this.elementsList.addToTail(value) + } + } + + print=(): void => this.elementsList.printAllElements() +} +~~~ + +### 3. +r: +~~~typescript +class Queue{ + public elements?: any[] | [] = [] + constructor( + initialArray?: any[] + ){ + if(initialArray){this.elements = initialArray} + } + + isEmpty =(): boolean => this.elements.length > 0 + + enqueue=(value: any)=>{ + this.elements.length === 0 ? + this.elements = [value]: + this.elements[this.elements.length] = value + } + + dequeue=()=>{ + this.elements[0] = undefined + let array = this.elements + this.elements = [] + for(let i = 0; i < array.length; i++){ + array[i] && this.enqueue(array[i]) + } + } + + printAll=()=>{ + for(let i = 0; i < this.elements.length; i++){ + console.log(this.elements[i]) + } + } +} +~~~ + +## Fim dos ExercĂ­cios \ No newline at end of file diff --git a/semana23/exercicios-aula75/package-lock.json b/semana23/exercicios-aula75/package-lock.json new file mode 100644 index 0000000..0d7a549 --- /dev/null +++ b/semana23/exercicios-aula75/package-lock.json @@ -0,0 +1,69 @@ +{ + "name": "exercicios-aula75", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/node": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.1.tgz", + "integrity": "sha512-HnYlg/BRF8uC1FyKRFZwRaCPTPYKa+6I8QiUZFLredaGOou481cgFS4wKRFyKvQtX8xudqkSdBczJHIYSQYKrQ==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ts-node": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/semana23/exercicios-aula75/package.json b/semana23/exercicios-aula75/package.json new file mode 100644 index 0000000..65f96fc --- /dev/null +++ b/semana23/exercicios-aula75/package.json @@ -0,0 +1,17 @@ +{ + "name": "exercicios-aula75", + "version": "1.0.0", + "description": "exercicios da aula 75, semana 23", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "clear && ts-node ./src/index.ts" + }, + "author": "OsmanRodrigues", + "license": "ISC", + "dependencies": { + "@types/node": "^14.6.1", + "ts-node": "^9.0.0", + "typescript": "^4.0.2" + } +} diff --git a/semana23/exercicios-aula75/src/index.ts b/semana23/exercicios-aula75/src/index.ts new file mode 100644 index 0000000..036c88e --- /dev/null +++ b/semana23/exercicios-aula75/src/index.ts @@ -0,0 +1,88 @@ +//1. +class LinkedListNode{ + constructor(public value: any){} + next: LinkedListNode | null = null +} + +class LinkedList{ + constructor( + public start: LinkedListNode | null = null + ){} + + addToTail(value: any): void{ + if(this.start === null){ + this.start = new LinkedListNode(value) + return + } + let node = this.start + while(node && node.next !== null){ + node = node.next + } + node.next = new LinkedListNode(value) + } + + printAllElements(): void{ + let node = this.start + while(node.next !== null){ + console.log(node.value) + node = node.next + } + node.value !== null && console.log(node.value) + } +} + +class Stack{ + elementsList: LinkedList | null = null + + isEmpty =(): boolean => this.elementsList === null + + push =(value: any): void =>{ + if(this.elementsList === null){ + this.elementsList = new LinkedList(new LinkedListNode(value)) + }else{ + this.elementsList.addToTail(value) + } + } + //ajustar o pop + //pop =():void =>{ + // let node = this.elementsList.start + // + // while(node.next !== null){ + // node = node.next + // } + //} + + print=(): void => this.elementsList.printAllElements() +} + +class Queue{ + public elements?: any[] | [] = [] + constructor( + initialArray?: any[] + ){ + if(initialArray){this.elements = initialArray} + } + + isEmpty =(): boolean => this.elements.length > 0 + + enqueue=(value: any)=>{ + this.elements.length === 0 ? + this.elements = [value]: + this.elements[this.elements.length] = value + } + + dequeue=()=>{ + this.elements[0] = undefined + let array = this.elements + this.elements = [] + for(let i = 0; i < array.length; i++){ + array[i] && this.enqueue(array[i]) + } + } + + printAll=()=>{ + for(let i = 0; i < this.elements.length; i++){ + console.log(this.elements[i]) + } + } +} \ No newline at end of file diff --git a/semana23/exercicios-aula75/tsconfig.json b/semana23/exercicios-aula75/tsconfig.json new file mode 100644 index 0000000..2bfbb23 --- /dev/null +++ b/semana23/exercicios-aula75/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "noImplicitAny": true, + "removeComments": true, + "preserveConstEnums": true, + "outDir": "build", + "sourceMap": true, + "target": "es6", + "module": "commonjs", + "esModuleInterop": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules"] +} \ No newline at end of file