1 | #!/usr/bin/php |
||
2 | <?php |
||
3 | /* |
||
4 | * Forest: binarySearchTree.php |
||
5 | * User: Sebastian Böttger <[email protected]> |
||
6 | * created at 24.12.19, 14:53 |
||
7 | */ |
||
8 | require_once "../../vendor/autoload.php"; |
||
9 | require_once "AddressBookBinaryTree.php"; |
||
10 | require_once "AddressBookAVLTree.php"; |
||
11 | require_once "AddressBookEntry.php"; |
||
12 | |||
13 | function generatorPhoneEntries() |
||
14 | { |
||
15 | $handle = fopen("entries.csv", "r+"); |
||
16 | while (($item = fgetcsv($handle, 1000, ";")) !== false) { |
||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||
17 | yield new AddressBookEntry($item[1], $item[0], $item[2], trim($item[3])); |
||
18 | } |
||
19 | } |
||
20 | |||
21 | if ($argc < 4) { |
||
22 | echo "Please run:\nphp addressBookSearch.php LastName FirstName (Binary|AVL)\n"; |
||
23 | exit(); |
||
24 | } |
||
25 | |||
26 | if ($argv[3] === "AVL") { |
||
27 | $dataStructure = "AVLTree"; |
||
28 | $addressBook = new AddressBookAvlTree(); |
||
29 | } else if ($argv[3] === "Binary") { |
||
30 | $dataStructure = "BinaryTree"; |
||
31 | $addressBook = new AddressBookBinaryTree(); |
||
32 | } else { |
||
33 | echo "Invalid data structure. Use either 'Binary' or 'AVL'!\n"; |
||
34 | } |
||
35 | |||
36 | foreach (generatorPhoneEntries() as $addressBookEntry) { |
||
37 | $addressBook->insert($addressBookEntry); |
||
38 | } |
||
39 | |||
40 | $timeBefore = microtime(); |
||
41 | $result = $addressBook->search(new AddressBookEntry($argv[1], $argv[2])); |
||
42 | $timeAfter = microtime(); |
||
43 | |||
44 | $time = $timeAfter - $timeBefore; // runtime of search |
||
45 | |||
46 | if (null === $result) { |
||
47 | echo "No entry found\n"; |
||
48 | } else { |
||
49 | $searchResultItem = $result->getItem(); |
||
50 | echo $searchResultItem->getLastName() . ", " . $searchResultItem->getFirstName() . "\n"; |
||
51 | echo $searchResultItem->getAddress() . "\n"; |
||
52 | echo "Phone No.: " . $searchResultItem->getPhoneNumber() . "\n"; |
||
53 | } |
||
54 | echo "Time to search with $dataStructure: " . sprintf("%1.2E", $time) . "\n"; |
||
55 |