Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions semana23/exercicios-aula75/README.md
Original file line number Diff line number Diff line change
@@ -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
69 changes: 69 additions & 0 deletions semana23/exercicios-aula75/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions semana23/exercicios-aula75/package.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
88 changes: 88 additions & 0 deletions semana23/exercicios-aula75/src/index.ts
Original file line number Diff line number Diff line change
@@ -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])
}
}
}
14 changes: 14 additions & 0 deletions semana23/exercicios-aula75/tsconfig.json
Original file line number Diff line number Diff line change
@@ -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"]
}