Merge pull request #890 from Panquesito7/lgtm_fixes

fix: Various LGTM fixes
This commit is contained in:
Krishna Vedala 2020-06-24 16:41:09 -04:00 committed by GitHub
commit 46854f516e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 51 additions and 45 deletions

View File

@ -1,37 +1,38 @@
#include <iostream> #include <iostream>
int *stack; int *stack;
int top = 0, stack_size; int stack_idx = 0, stack_size;
void push(int x) { void push(int x) {
if (top == stack_size) { if (stack_idx == stack_size) {
std::cout << "\nOverflow"; std::cout << "\nOverflow";
} else { } else {
stack[top++] = x; stack[stack_idx++] = x;
} }
} }
void pop() { void pop() {
if (top == 0) { if (stack_idx == 0) {
std::cout << "\nUnderflow"; std::cout << "\nUnderflow";
} else { } else {
std::cout << "\n" << stack[--top] << " deleted"; std::cout << "\n" << stack[--stack_idx] << " deleted";
} }
} }
void show() { void show() {
for (int i = 0; i < top; i++) { for (int i = 0; i < stack_idx; i++) {
std::cout << stack[i] << "\n"; std::cout << stack[i] << "\n";
} }
} }
void topmost() { std::cout << "\nTopmost element: " << stack[top - 1]; } void topmost() { std::cout << "\nTopmost element: " << stack[stack_idx - 1]; }
int main() { int main() {
std::cout << "\nEnter stack_size of stack : "; std::cout << "\nEnter stack_size of stack : ";
std::cin >> stack_size; std::cin >> stack_size;
stack = new int[stack_size]; stack = new int[stack_size];
int ch, x; int ch, x;
do { do {
std::cout << "\n0. Exit";
std::cout << "\n1. Push"; std::cout << "\n1. Push";
std::cout << "\n2. Pop"; std::cout << "\n2. Pop";
std::cout << "\n3. Print"; std::cout << "\n3. Print";
@ -51,5 +52,7 @@ int main() {
} }
} while (ch != 0); } while (ch != 0);
delete[] stack;
return 0; return 0;
} }

View File

@ -1,35 +1,34 @@
#include <iostream> #include <iostream>
using namespace std;
struct node { struct node {
int val; int val;
node *next; node *next;
}; };
node *top; node *top_var;
void push(int x) { void push(int x) {
node *n = new node; node *n = new node;
n->val = x; n->val = x;
n->next = top; n->next = top_var;
top = n; top_var = n;
} }
void pop() { void pop() {
if (top == NULL) { if (top_var == NULL) {
cout << "\nUnderflow"; std::cout << "\nUnderflow";
} else { } else {
node *t = top; node *t = top_var;
cout << "\n" << t->val << " deleted"; std::cout << "\n" << t->val << " deleted";
top = top->next; top_var = top_var->next;
delete t; delete t;
} }
} }
void show() { void show() {
node *t = top; node *t = top_var;
while (t != NULL) { while (t != NULL) {
cout << t->val << "\n"; std::cout << t->val << "\n";
t = t->next; t = t->next;
} }
} }
@ -37,14 +36,14 @@ void show() {
int main() { int main() {
int ch, x; int ch, x;
do { do {
cout << "\n1. Push"; std::cout << "\n1. Push";
cout << "\n2. Pop"; std::cout << "\n2. Pop";
cout << "\n3. Print"; std::cout << "\n3. Print";
cout << "\nEnter Your Choice : "; std::cout << "\nEnter Your Choice : ";
cin >> ch; std::cin >> ch;
if (ch == 1) { if (ch == 1) {
cout << "\nInsert : "; std::cout << "\nInsert : ";
cin >> x; std::cin >> x;
push(x); push(x);
} else if (ch == 2) { } else if (ch == 2) {
pop(); pop();

View File

@ -19,28 +19,32 @@
#include <cstdio> #include <cstdio>
#include <iostream> #include <iostream>
/** maximum number that can be computed - The result after 93 cannot be stored /**
* in a `uint64_t` data type. */ * maximum number that can be computed - The result after 93 cannot be stored
const uint64_t MAX = 93; * in a `uint64_t` data type.
*/
/** Array of computed fibonacci numbers */ #define MAX 93
uint64_t f[MAX] = {0};
/** Algorithm */ /** Algorithm */
uint64_t fib(uint64_t n) { uint64_t fib(uint64_t n) {
if (n == 0) static uint64_t f1 = 1,
f2 = 1; // using static keyword will retain the values of
// f1 and f2 for the next function call.
if (n <= 2)
return f2;
if (n >= 93) {
std::cerr
<< "Cannot compute for n>93 due to limit of 64-bit integers\n";
return 0; return 0;
if (n == 1 || n == 2) }
return (f[n] = 1);
if (f[n]) uint64_t temp = f2; // we do not need temp to be static
return f[n]; f2 += f1;
f1 = temp;
uint64_t k = (n % 2 != 0) ? (n + 1) / 2 : n / 2; return f2;
f[n] = (n % 2 != 0) ? (fib(k) * fib(k) + fib(k - 1) * fib(k - 1))
: (2 * fib(k - 1) + fib(k)) * fib(k);
return f[n];
} }
/** Main function */ /** Main function */

View File

@ -20,13 +20,13 @@
char stack[MAX]; char stack[MAX];
//! pointer to track stack index //! pointer to track stack index
int top = -1; int stack_idx = -1;
//! push byte to stack variable //! push byte to stack variable
void push(char ch) { stack[++top] = ch; } void push(char ch) { stack[++stack_idx] = ch; }
//! pop a byte out of stack variable //! pop a byte out of stack variable
char pop() { return stack[top--]; } char pop() { return stack[stack_idx--]; }
//! @}-------------- end stack ----------- //! @}-------------- end stack -----------
@ -56,7 +56,7 @@ int main() {
while (valid == 1 && i < exp.length()) { while (valid == 1 && i < exp.length()) {
if (exp[i] == '(' || exp[i] == '{' || exp[i] == '[' || exp[i] == '<') { if (exp[i] == '(' || exp[i] == '{' || exp[i] == '[' || exp[i] == '<') {
push(exp[i]); push(exp[i]);
} else if (top >= 0 && stack[top] == opening(exp[i])) { } else if (stack_idx >= 0 && stack[stack_idx] == opening(exp[i])) {
pop(); pop();
} else { } else {
valid = 0; valid = 0;
@ -65,7 +65,7 @@ int main() {
} }
// makes sure the stack is empty after processsing (above) // makes sure the stack is empty after processsing (above)
if (valid == 1 && top == -1) { if (valid == 1 && stack_idx == -1) {
std::cout << "\nCorrect Expression"; std::cout << "\nCorrect Expression";
} else { } else {
std::cout << "\nWrong Expression"; std::cout << "\nWrong Expression";