diff --git a/Data Structure Algo/C++/BFS.cpp b/Data Structure Algo/C++/BFS.cpp index b711b278..1104c744 100644 --- a/Data Structure Algo/C++/BFS.cpp +++ b/Data Structure Algo/C++/BFS.cpp @@ -1,78 +1,92 @@ #include #include + using namespace std; - + +// This class represents a directed graph using +// adjacency list representation class Graph { - int V; - list *adj; + int V; // No. of vertices + + // Pointer to an array containing adjacency + // lists + list *adj; public: - Graph(int V); - void addEdge(int v, int w); - void BFS(int s); + Graph(int V); // Constructor + + // function to add an edge to graph + void addEdge(int v, int w); + + // prints BFS traversal from a given source s + void BFS(int s); }; - + Graph::Graph(int V) { - this->V = V; - adj = new list[V]; + this->V = V; + adj = new list[V]; } - + void Graph::addEdge(int v, int w) { - adj[v].push_back(w); + adj[v].push_back(w); // Add w to v’s list. } - + void Graph::BFS(int s) { - - bool *visited = new bool[V]; - for(int i = 0; i < V; i++) - visited[i] = false; - - - list queue; - - - visited[s] = true; - queue.push_back(s); - - - list::iterator i; - - while(!queue.empty()) - { - - s = queue.front(); - cout << s << " "; - queue.pop_front(); - - - for (i = adj[s].begin(); i != adj[s].end(); ++i) - { - if (!visited[*i]) - { - visited[*i] = true; - queue.push_back(*i); - } - } - } + // Mark all the vertices as not visited + bool *visited = new bool[V]; + for(int i = 0; i < V; i++) + visited[i] = false; + + // Create a queue for BFS + list queue; + + // Mark the current node as visited and enqueue it + visited[s] = true; + queue.push_back(s); + + // 'i' will be used to get all adjacent + // vertices of a vertex + list::iterator i; + + while(!queue.empty()) + { + // Dequeue a vertex from queue and print it + s = queue.front(); + cout << s << " "; + queue.pop_front(); + + // Get all adjacent vertices of the dequeued + // vertex s. If a adjacent has not been visited, + // then mark it visited and enqueue it + for (i = adj[s].begin(); i != adj[s].end(); ++i) + { + if (!visited[*i]) + { + visited[*i] = true; + queue.push_back(*i); + } + } + } } - + +// Driver program to test methods of graph class int main() { - - Graph g(4); - g.addEdge(0, 1); - g.addEdge(0, 2); - g.addEdge(1, 2); - g.addEdge(2, 0); - g.addEdge(2, 3); - g.addEdge(3, 3); - - cout << "Following is Breadth First Traversal " - << "(starting from vertex 2) \n"; - g.BFS(2); - - return 0; + // Create a graph given in the above diagram + Graph g(4); + g.addEdge(0, 1); + g.addEdge(0, 2); + g.addEdge(1, 2); + g.addEdge(2, 0); + g.addEdge(2, 3); + g.addEdge(3, 3); + + cout << "Following is Breadth First Traversal " + << "(starting from vertex 2) \n"; + g.BFS(2); + + return 0; } diff --git a/Python/test_test0.py b/Python/test_test0.py new file mode 100644 index 00000000..5a5331b7 --- /dev/null +++ b/Python/test_test0.py @@ -0,0 +1,42 @@ +# Generated by Selenium IDE +import pytest +import time +import json +from selenium import webdriver +from selenium.webdriver.common.by import By +from selenium.webdriver.common.action_chains import ActionChains +from selenium.webdriver.support import expected_conditions +from selenium.webdriver.support.wait import WebDriverWait +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.common.desired_capabilities import DesiredCapabilities + +class TestTest0(): + def setup_method(self, method): + self.driver = webdriver.Chrome() + self.vars = {} + + def teardown_method(self, method): + self.driver.quit() + + def test_test0(self): + self.driver.get("https://www.google.com/") + self.driver.set_window_size(697, 706) + self.driver.find_element(By.NAME, "q").click() + self.driver.find_element(By.NAME, "q").send_keys(Keys.DOWN) + self.driver.find_element(By.NAME, "q").send_keys("amazon") + self.driver.find_element(By.NAME, "q").send_keys(Keys.ENTER) + element = self.driver.find_element(By.CSS_SELECTOR, ".cfxYMc") + actions = ActionChains(self.driver) + actions.move_to_element(element).perform() + self.driver.find_element(By.CSS_SELECTOR, ".cfxYMc > span").click() + self.driver.execute_script("window.scrollTo(0,52)") + self.driver.find_element(By.CSS_SELECTOR, ".hovering > .feed-right").click() + self.driver.find_element(By.ID, "add-to-cart-button").click() + element = self.driver.find_element(By.ID, "attach-close_sideSheet-link") + actions = ActionChains(self.driver) + actions.move_to_element(element).perform() + element = self.driver.find_element(By.CSS_SELECTOR, "body") + actions = ActionChains(self.driver) + actions.move_to_element(element, 0, 0).perform() + self.driver.find_element(By.CSS_SELECTOR, "#attach-sidesheet-view-cart-button .a-button-input").click() +