C++ :: Adding Element Into N-ary Tree
Dec 16, 2014
Currently I'm implementing a T9 (predective text) project in c++ using n-ary Trees. I've never used the n-ary tree before so I really have some difficulties
I have to add words into the tree, knowing that each node of the tree contains a linked list (for the words) and a vector of pointers to access the next node
the words should be stockes in the different nodes according to their T9 code and then when the user insert a number, my program should display all the words corresponds to that code. For example the code: 4663 matches "good" "home" "gone" ...and so on...
I would like to understand how can I add the words into the Tree and how can I display them later
Here are my structs :
struct NodeList{
string data;
NodeList * next;
};
struct List{
NodeList *head;
[Code] ....
How can I add the words and display them...
View 8 Replies
ADVERTISEMENT
Oct 31, 2014
I want to find maximum element from a tree (not a binary tree ) ???? ...using c language...
View 1 Replies
View Related
Sep 7, 2014
I want to insert an element into binary tree using pointer passing through functions. In my program i have used three structure which are follows :-
Code:
struct tree{
int data1;
struct tree *leftptr;
struct tree *rightptr;
};
struct list{
struct tree **data;
struct list *node;
[Code]...
Here i think problem is in allocating memory to n2 . why i do this because i want to store the address of address of left and right pointers of tree and extract that address to get the address of left and right pointers. Is my method correct ?
View 2 Replies
View Related
Feb 10, 2015
Write a program having structure which hold address fields as Name, Address Line 1, City, State, ZIP. Program should able to hold 50 entries of address. Application should have feature/choice option to add, delete and Search address by name .
View 1 Replies
View Related
Apr 20, 2014
I'm having a problem filling a vector from a file. Basically, it is adding an empty element at the end. I'm new to Qt and haven't worked with file streams much so how to stop the stream before it adds the extra element.
void gui::get_data() {
mileage.clear();
QFile file(file_label->text() + ".txt");
QTextStream in(& file);
float m;
float g;
QString d;
[Code] ....
But, if I add another element to the vector and write that the file look like this.
//file after adding element
132654 0 02132014
132654 0 02132014
0 0
132998 22 02202014
I have it set to append at the moment so that is why the first line is repeated. I figure the problem is with if(in.atEnd()). I could fix it by deleting the last element right after adding it, but that seems like more of a hack than anything else.
View 3 Replies
View Related
Jul 23, 2013
I want to add mathematical expression in a binary tree but I have some problems with the algorithm. I found this one:
-If the current token is a '(', add a new node as the left child of the current node, and descend to the left child.
-If the current token is in the list ['+','-','/','*'], set the root value of the current node to the operator represented by the current token. Add a new node as the right child of the current node and descend to the right child.
-If the current token is a number, set the root value of the current node to the number and return to the parent.
-If the current token is a ')', go to the parent of the current node.
Here is the code that I made so far:
template<class T>
void Tree<T>::Expr(Node<T> *node, char expr[], int &i) {
i++;
T x = expr[i];
if(x == '(') {
node = node->Left;
[Code] ....
I know that it is a big mess and it doesn't follow the algorithm but this is the problem. For example if the token is '(' I go to the left child of the current node. Then lets say that the next token in the expression is a number. I add this number to the current node and I must go back. But how can I go back to the parent? I will go back to line 13 and the program will end. What should be the structure that I must use?
View 1 Replies
View Related
Dec 31, 2014
Code:
// Write a function called insertEntry() to insert a new entry into a linked list.
Have the procedure take as arguments a pointer to the list entry to be inserted (of type struct entry as defined in this chapter), and a pointer to an element in the list after which the new entry is to be inserted.
// The function dveloped in exercise 2 only inserts an element after an existing element in the list, thereby prenting you from inserting a new entry at the front of the list.
(Hint: Think about setting up a special structure to point to the beginning of the list.)
#include <stdio.h
struct entry1 {
int value;
struct entry1 *next;
};
[code]...
This is a working version of the exercise, but I don't think I'm doing what's asked. I was able to add an element to the beginning of the list using an if statement, not creating a special structure that points to the beginning of the list. How would I go about creating a special structure that points to the beginning of the list to add a new element at the beginning of the list?
View 8 Replies
View Related
Mar 10, 2014
So I have linked list and function which deletes element if next element is bigger, so my code is working but its not working with first element, in the comment I have wrote code which I would code for checking that first element, but when ever I check it is blowing up all program.
#include <iostream>
using namespace std;
struct llist {
int x;
llist *next;
[Code] .....
View 1 Replies
View Related
Feb 23, 2013
I have a global list that contains smaller lists of char arrays. I have an issue where when I'm reading back the inner lists the last element of one list seems to point to first element of the next.
So my data looks like the below (values separated by commas with the pairs separated by tabs. The last pair in a line is the same as the first). When I read the first list back instead of seeing "456.678,678.98" as the last element in the list. I see "435.67,234.98" twice: at the end of the first list and start of the other. I have debugged when the list is populated and can see the correct values going in so I can't figure what's happening.
456.678,678.98 123.45,345.56 256.67,789.98 456.678,678.98
435.67,234.98 123.65,342.56 987.78,678.34 435.67,234.98
Code to fill the list:
obstacle_list = op_prg_list_create();
while (fgets(line, sizeof(line), obstaclePositions_traj_file) ) {
token = strtok(line, "
"); //Pull the string apart into tokens using the
input = op_prg_list_create();
[Code] ....
View 3 Replies
View Related
Aug 23, 2012
I have an std list of type double.. and the list is always guaranteed to have just 2 elements. I need to get the value of element 2 minus element 1. What is the least amount of code to accomplish that?
I tried this:
Code:
list<double> dList;
dList.push_back(1.0);
dList.push_back(2.0);
list<double>::iterator iter = dList.begin();
list<double>::iterator iter2 = dList.end();
double result = *iter2 - *iter;
But this code does not work. Why not?
View 6 Replies
View Related
Feb 10, 2013
For my data-structures class, I am attempting to create a binary search tree template to be used to create an AVL tree. I've written a Generic_Tree template for the BST to inherit from, and before I jump into implementing the AVL tree I'm testing the BST member functions. Everything was compiling fine until I added the BST insert() function. Now, I'm getting the following error message from my linker:
undefined reference to 'BST<void>::insert(int, void*)'
Stemming from the call in main line 16.
my makefile compiles with:
g++ -Wall -g Generic_Tree.cpp BST.cpp barfing.cpp main.cpp
Generic_Tree:
template < typename NODE_DATA, unsigned MAX_KIDS >
class Tree {
protected:
struct NODE {
NODE_DATA* contents;
Tree* child[MAX_KIDS];
Tree* parent;
[Code] ....
I'm use to c and havn't used classes or templates before (except for declaring instances of them). The whole syntax is mystifying to me,.
View 4 Replies
View Related
Jun 17, 2013
I'm making my first steps in STL, and I have a few question:
Is there a way to get an iterator to the i'th element in the collection (set or list), instead of just to the end or the begin?
And another question: Let's say I have an iterator, pointing to some element in my collection, and I use erase() (which takes as parameter an iterator that points to the soon-to-be erased element), what happens to that iterator? will it now point to NULL?
View 7 Replies
View Related
Jun 20, 2013
I have a map as below. MoTopImpl is a class.
Map<MoTopImpl*,os_Reference_protected<MoTopImpl> > map_;
The map is populated as below:
void setMoInMap(MoTopImpl* mo,MoTopImpl* me) {
map_[mo] = me;
}
Now, I want to remove a specific element from this map. I am passing the element to be removed to the remove function as below:
void Asap::removeMoFromMap(MoTopImpl* mo) {
// First solution
if (mo != 0) {
[Code]....
And the function removeMoFromMap is called as below:
MoTopImpl* moTop = getMoTopImpl();
if (moTop != 0)
removeMoFromListMosSuspended(moTop);
But I am able to empty the map by iterating through the complete map as below:
Mapiter<MoTopImpl*,os_Reference_protected<MoTopImpl> > moIter(map_);
for (moIter = map_.first(); moIter; moIter.next()) {
moIter.remove();
}
cout << "Map zise = " << map_.size() << endl; // Prints zero
View 6 Replies
View Related
Sep 21, 2013
I have a "fairly" large, std::map. Is there a way, to get the key of an element, by position? E.g., something like,
map.at(i).getkey
View 5 Replies
View Related
Oct 5, 2014
My code has been acting odd. I made a function that layers my art resources but only the last tile of my art resource acts the way it should. My character goes behind and in front of the last tile and gets printed correctly. Strangely its really exclusive to the last tiles I print. What I need is to figure out in step by step order what going on with my code sample below and be able to layer the resources.
Here is a small sample of my main function. This is how I do my rendering.
Code:
Int main (int arc, char* args[]) {
//Move class
Move character;
//Class Tile & Side Tile
Tile *tiles [TOTAL_TILES];
[Code] ......
View 14 Replies
View Related
Mar 6, 2015
how to compare each element of array with another,defined ? I have tried this,but didn't work.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void bill()
[Code].....
View 3 Replies
View Related
Jan 27, 2013
I want to a C program to delete an element from an array which can use both index method & character method
For example
input : "1 222 333 4444"
output:"1 22 333 4444"
if either index = "4" or character ="2" is entered
It should able to read in/accept any input array of varying length, and the position/index or element in array to be deleted...
View 6 Replies
View Related
Jan 9, 2015
how to delete an element(s) from an array; suppose I have an array x[10] = {1,2,3,4,5,6,7,8,9,10}, and I want to delete array{5} so that the values of the array become {1,2,3,4,5,7,8,9,10}; how do I go about this? This is not the same as setting the value of array{5} to null; but completely eliminating it so that it does not get printed alongside the other elements of the screen.
View 3 Replies
View Related
Oct 7, 2013
Lets assume, I use array of 100 the i input 50 element and now i want to find which one is first in array... without using pointer ...
View 2 Replies
View Related
Mar 27, 2013
How can I remove an element in a list when I have only an iterator that points to the object I want to remove. Is there a build in command? remove() takes an object reference as its argument. Is it possible to convert the iterator into a pointer type so it can be deferenced and passed to remove?
This is the code I am working on:
//player.cpp
void Player::CheckCollectableCollisions(std::list<Collectable>& c) {
std::list<Collectable>::iterator i = c.begin();
while(i != c.end()) {
if (Collider::CheckCollision(pNodes_.front().getLocation(), i->getLocation()))
[Code] .....
View 2 Replies
View Related
May 6, 2014
This is a program to get an 10 characters including a-z, A-Z, and _ .
Then this program will cout the text with out _ !
Example:
cin >> sd_fd_e_dd
cout << sdfdedd
# include <iostream>
#inclued<vector>
using namespace std;
char a[10],m;
[Code] ....
View 1 Replies
View Related
May 13, 2013
How would I go about having a pointer to an array element specificity a character in a c-string.Every thing I try will not even build.An array is already a pointer to the first location of the array right?
char *pHead;
char *pTail;
pHead = sentence[0]; <=== This wont build
pHead = &sentence[0];
pHead = sentence[0]*;
*pHead = sentence[0]; <===== this builds but is not storing anything
View 5 Replies
View Related
Feb 17, 2014
"Write a program in C that finds the element of an array which all the previous are smaller and all the next are bigger than that.If there are more than one print the biggest. If there isn't any print "ERROR" .
EXAMPLE
If the array has 10 elements like this : {2,3,4,6,5,7,8,10,9,8}
The correct answer is 7 , because 2,3,4,6,5 are smaller than 7 and 8,10,9,8 are bigger than 7.
I am working on it for 2 weeks and I can't find a working solution />/>/>
There is the first try :
#include <stdio.h>
#include <stdbool.h>
int s_data[10]={2,3,4,6,5,7,8,10,9,8};
int main() {
int result,i,j,s_len ,tmp1,tmp;
bool GT_PREV,ST_NEXT;
[Code] .....
View 11 Replies
View Related
Nov 26, 2014
Here's my list code:
Color.FromArgb(alfa, 0, 255, 255),
Color.FromArgb(alfa, 0, 255, 0),
Color.FromArgb(alfa, 64, 255, 0),
Color.FromArgb(alfa, 128, 255, 0),
Color.FromArgb(alfa, 192, 255, 0),
Color.FromArgb(alfa, 255, 255, 0),
Color.FromArgb(alfa, 255, 192, 0),
Color.FromArgb(alfa, 255, 128, 0),
Color.FromArgb(alfa, 255, 64, 0),
Color.FromArgb(alfa, 255, 0, 0)
How can I get a specific element value from that list?
For example:
if(true)
{
//get "192" from Color.FromArgb(alfa, 255, 192, 0)
}
I don't see the "Edit" option and I've noticed a slight error in the previous post.There should be, obviously, [code]if(true)
{
//get "192" from Color.FromArgb(alfa, 255, 192, 0)
}
I was missing the closing tag.
View 2 Replies
View Related
Jun 3, 2012
How can i form a counter of say 30 elements so that to meet following requirement,
I need to access 5 elements out of 30 elements and out of these 5 elements once the one value is printed (i.e now access for remaining 4 element will be left) other one should get added immediately to this 5 element set, from remaining total 25 elements. In this way 5 element count will be there always.
I am trying this as follows, by forming vector of 30 elements accessing its 5 elements as :
for (iter = vector1.begin(); it < vector1.end();it++) {
for(int count = 5; count >= 1 ; count--) {
cout << "Print value<" <<count<<"> : "<< *it <<endl;
it++;
}
}
This displays 5 elements at a time but counter "count" waits for to finish off its remaining 4 elements however i want to maintain this counter to 5 elements always.
View 1 Replies
View Related
Dec 26, 2013
Code:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s="Last Assignment/n";
cout<<j[1]<<j[2]<<j[3];
I don't understand how it printing each element of whole string. Like L a s. But I did not declared array.
View 2 Replies
View Related