コード例 #1
0
        public IOperate GetOperator(DataStructureTypes dataStructure,
                                    IDataStructure <TDataType> dataStructureInstance, object operation)
        {
            switch (dataStructure)
            {
            case DataStructureTypes.Array:
                break;

            case DataStructureTypes.SinglyLinkedList:
            case DataStructureTypes.DoublyLinkedList:
            case DataStructureTypes.CircularLinkedList:
                return(GetLinkedListOperationsHandler(dataStructureInstance, (LinkedListOperations)operation));

            case DataStructureTypes.Stack:
                break;

            case DataStructureTypes.Queue:
                break;

            case DataStructureTypes.Tree:
                break;

            case DataStructureTypes.Graph:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(dataStructure), dataStructure, null);
            }

            return(null);
        }
コード例 #2
0
        public void Run()
        {
            char anotherDs;

            do
            {
                DataStructureTypes selectedDataStructure = SelectDataStructure();

                IDataStructure <TDataType> dataStructureInstance =
                    dataStructureFactory.GetDataStructure(selectedDataStructure);

                char anotherOperation;
                do
                {
                    object selectedOperation = SelectOperation(selectedDataStructure);

                    IOperate dsOperator = operatorFactory.GetOperator(selectedDataStructure, dataStructureInstance, selectedOperation);

                    dsOperator.Operate();

                    Console.WriteLine("Do you want to select another Operation? Y/N");
                    anotherOperation = Convert.ToChar(Console.ReadLine() ?? throw new InvalidOperationException());
                } while (anotherOperation == 'y' || anotherOperation == 'Y');

                Console.WriteLine("Do you want to select another Data Structure? Y/N");
                anotherDs = Convert.ToChar(Console.ReadLine() ?? throw new InvalidOperationException());
            } while (anotherDs == 'y' || anotherDs == 'Y');
        }
コード例 #3
0
        private object SelectOperation(DataStructureTypes dataStructure)
        {
            Type operationType = dsAndOperationsMapper.GetOperationType(dataStructure);

            menuPrinter.ShowEnumBasedTabularMenu(operationType, new[] { "Index", "Operation" });

            return(userInterface.GetEnumBasedInputByUser(operationType));
        }
コード例 #4
0
        public Type GetOperationType(DataStructureTypes dataStructure)
        {
            if (!Enum.IsDefined(typeof(DataStructureTypes), dataStructure))
            {
                throw new InvalidEnumArgumentException(nameof(dataStructure), (int)dataStructure,
                                                       typeof(DataStructureTypes));
            }

            return(dsAndOperationsMap[dataStructure]);
        }
コード例 #5
0
ファイル: BaseCommand.cs プロジェクト: DaveSenn/Stomp.Net
    public override String ToString()
    {
        var answer = DataStructureTypes.GetDataStructureTypeAsString(GetDataStructureType());

        if (answer.Length == 0)
        {
            answer = base.ToString();
        }

        return(answer + ": id = " + CommandId);
    }
コード例 #6
0
        public IDataStructure <TDataType> GetDataStructure(DataStructureTypes selectedDataStructure)
        {
            if (!Enum.IsDefined(typeof(DataStructureTypes), selectedDataStructure))
            {
                throw new InvalidEnumArgumentException(nameof(selectedDataStructure), (int)selectedDataStructure,
                                                       typeof(DataStructureTypes));
            }

            switch (selectedDataStructure)
            {
            case DataStructureTypes.Array:
                break;

            case DataStructureTypes.SinglyLinkedList:
                return(new SinglyLinkedList <TDataType>());

            case DataStructureTypes.DoublyLinkedList:
                break;

            case DataStructureTypes.CircularLinkedList:
                break;

            case DataStructureTypes.Stack:
                break;

            case DataStructureTypes.Queue:
                break;

            case DataStructureTypes.Tree:
                break;

            case DataStructureTypes.Graph:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(selectedDataStructure), selectedDataStructure, null);
            }

            return(null);
        }