Стек и операции с ним - проверка кода на корректность - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо реализовать стек на С#(считывание без извлечения элемента стека, считывание с извлечением элемента стека, запись элемента в стек, сравнение двух стеков) Можете проверить на правильность и корректность?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication3{
    class Stack{
 
        private int[] elements;
        private int size;
 
        public Stack(){
            this.elements = new int[0];
            this.size = elements.Length;
        }
 
        public void push(int e){
            if (this.size == elements.Length){
                int[] newArray = new int[this.elements.Length + 1];
                Array.Copy(this.elements, 0, newArray, 0, this.size);
                this.elements = newArray;
                this.elements[this.size++] = e;
            }
        }
 
        public int pop(){
            if (this.elements.Length == 0)
                throw new Exception("Не существующий элемент массива");
           
            this.size -= 1;
            int el = elements[this.size];
            int[] newArray = new int[this.size];
            Array.Copy(this.elements, 0, newArray, 0, this.size);
            this.elements = newArray;
            return el;
        }
 
        public int getSize{
            get{ return elements.Length; }
        }
 
        public bool isEmpty{
            get { return this.size == 0; }
        }
 
        public int peek{
            get{ return this.elements[this.size-1]; }
        }
 
        public override bool Equals(object obj){
 
            Stack s = obj as Stack;
 
            if(this.size == s.size){
                for (int i = 0; i < this.size;i++ ){
                    if (this.elements[i] == s.elements[i]){
                        return true;
                    }
                }
            }else
                return false;
            throw new Exception("Ошибка при сравнении");
        }
 
        public override int GetHashCode(){
            int hashCode=0;
            const int constant = 31;
            for (int i = 0; i < this.size;i++ ){
                hashCode = constant * this.elements[i];
            }
            return hashCode;
        }
    }
}

Решение задачи: «Стек и операции с ним - проверка кода на корректность»

textual
Листинг программы
public override int GetHashCode(){
            const int constant = 31;
            int hashCode=constant * curr;
            for (int i = 0; i < curr;i++ ){
                hashCode ^= constant * this.elements[i];
            }
            return hashCode;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы