static void printTreeNodesLevelWise(const Node* node) const
{
Node* root = node;
queue<Node*> q = new queue<Node*>();
if (!root) return;
q.push_back(root);
q.push_back(NULL);
root = q.pop_back();
while (root)
{
if (root->left) q.push_back(root->left);
if (root->right) q.push_back(root->right);
root = q.pop_front();
if (root)
printf("%s ", root->data);
else
{
printf ("/n");
q.push_back(root);
root = q.pop_front();
}
}
}
#include <iostream>
using namespace std;
int GetDuplicatesCount(int num[], int val, int start, int end);
int main()
{
cout << "Hello World" << endl;
int abc[8] = {1,2,2,3,3,3,5,6};
printf("%d", GetDuplicatesCount(abc, 3, 0, 7));
return 0;
}
int GetDuplicatesCount(int num[], int val, int start, int end)
{
if (start > end) return 0;
if (start == end && num[start] == val ) return 1;
if (start == end) return 0;
if (num[start] > num[end]) return 0;
if (num[start] == val && num[start] == val) return end - start + 1;
int mid = (start + end) / 2
if (num[mid] < val) start = mid;
if (num[mid] > val) end = mid;
if (num[start] < val && start < mid) start++;
if (num[end] > val && mid < end) end--;
return GetDuplicatesCount(num, val, start, mid) + GetDuplicatesCount(num, val, mid+1, end);
}
{2,2,3} {3,3,5}
{2} {2,3} {3,3}, {5}
{2} {2} {3} {3,3}, {5}
{
Node* root = node;
queue<Node*> q = new queue<Node*>();
if (!root) return;
q.push_back(root);
q.push_back(NULL);
root = q.pop_back();
while (root)
{
if (root->left) q.push_back(root->left);
if (root->right) q.push_back(root->right);
root = q.pop_front();
if (root)
printf("%s ", root->data);
else
{
printf ("/n");
q.push_back(root);
root = q.pop_front();
}
}
}
#include <iostream>
using namespace std;
int GetDuplicatesCount(int num[], int val, int start, int end);
int main()
{
cout << "Hello World" << endl;
int abc[8] = {1,2,2,3,3,3,5,6};
printf("%d", GetDuplicatesCount(abc, 3, 0, 7));
return 0;
}
int GetDuplicatesCount(int num[], int val, int start, int end)
{
if (start > end) return 0;
if (start == end && num[start] == val ) return 1;
if (start == end) return 0;
if (num[start] > num[end]) return 0;
if (num[start] == val && num[start] == val) return end - start + 1;
int mid = (start + end) / 2
if (num[mid] < val) start = mid;
if (num[mid] > val) end = mid;
if (num[start] < val && start < mid) start++;
if (num[end] > val && mid < end) end--;
return GetDuplicatesCount(num, val, start, mid) + GetDuplicatesCount(num, val, mid+1, end);
}
{2,2,3} {3,3,5}
{2} {2,3} {3,3}, {5}
{2} {2} {3} {3,3}, {5}
No comments:
Post a Comment