コード例 #1
0
ファイル: main.c プロジェクト: mandress64/spring2014
/* function associated with clicker question 1 */
void clickerQuestion1()
{
    TreeNodePtr rootPtr = NULL;

    rootPtr = createNewTreeNode(42);
    rootPtr->leftPtr = createNewTreeNode(3);
    rootPtr->rightPtr = createNewTreeNode(43);
    rootPtr->rightPtr->leftPtr = createNewTreeNode(1);
    rootPtr->rightPtr->rightPtr = createNewTreeNode(4);

/*
    printf("tree:\n");
    printTree(rootPtr,0);
    printf("post order traversal:\n");
    postOrderPrint(rootPtr);
    printf("\n");
    printf("arithmetic expression tree:\n");
    printTreeAsArithmeticExpression(rootPtr, 0);
    printf("postfix notation:\n");
    postOrderArithmeticExpressionPrint(rootPtr);
    printf("\n");
    printf("Result of evaluating arithmetic expression: %g\n",
           optionalComputeResultOfArithmeticExpressionTree(rootPtr));
*/
}
コード例 #2
0
ファイル: main.c プロジェクト: mandress64/spring2014
/*
   Given a pointer to a pointer to a binary search tree and desired node
   value, this function will create/insert a node with the given
   value in the proper position. If the node value is a duplicate,
   it will NOT be inserted in the tree.
*/
void insertBinarySearchTreeNode(TreeNodePtr *rootPtr, int newNodeData)
{
    if (*rootPtr == NULL) /* base case */
    {
        *rootPtr = createNewTreeNode(newNodeData);
    }
    else
    {
        if (newNodeData < (*rootPtr)->data) /* insert in left subtree */
        {
            insertBinarySearchTreeNode(&((*rootPtr)->leftPtr), newNodeData);
        }
        else if (newNodeData > (*rootPtr)->data) /* insert in right subtree */
        {
            insertBinarySearchTreeNode(&((*rootPtr)->rightPtr), newNodeData);
        }
    }
}
コード例 #3
0
ファイル: main.c プロジェクト: mandress64/spring2014
/*
   Given a pointer to a pointer to a binary tree and desired node
   value, this function will create/insert a node with the given
   value in a random leaf position in the tree.
*/
void insertTreeNodeRandomly(TreeNodePtr *rootPtr, int newNodeData)
{
    if (*rootPtr == NULL) /* base case */
    {
        *rootPtr = createNewTreeNode(newNodeData);
    }
    else
    {
        if (rand() % 2 == 0)
        {
            insertTreeNodeRandomly(&((*rootPtr)->rightPtr), newNodeData);
        }
        else
        {
            insertTreeNodeRandomly(&((*rootPtr)->leftPtr), newNodeData);
        }
    }
}
コード例 #4
0
int main()
{
    int op = 0;
    int exit = 0;
    
    myTreeNode * myTree = NULL;

     while(!exit)
     {
     
	     printf("Enter the option\n");
	     printf("1.Craete Tree\n");
	     printf("2.Print Tree\n");
	     printf("3.Size of Tree\n");
	     printf("4.Height of Tree\n");
	     printf("0.Exit\n");

	     scanf("%d",&op);
	     switch(op)
	     {
		     case 0:
			     exit = 1;
			     break;
		     case 1:
			     myTree = (myTreeNode*)createNewTreeNode(1);
			     myTree->left = (myTreeNode*)createNewTreeNode(2);
			     myTree->right = (myTreeNode*)createNewTreeNode(3);
			     myTree->left->left = (myTreeNode*)createNewTreeNode(4);
			     myTree->left->right = (myTreeNode*)createNewTreeNode(5);
			     myTree->right->left = (myTreeNode*)createNewTreeNode(6);
			     myTree->right->right = (myTreeNode*)createNewTreeNode(7);

			     break;
		     case 2:
			     printTree(myTree);
			     break;
		     case 3:
			     printf("Tree Size = %d\n",getTreeSize(myTree));
			     break;
		     case 4:
			     printf("Tree Height = %d\n",getTreeHeight(myTree));
			     break;
		     case 5:
			     break;
		     case 6:
			     break;
		     case 7:
			     break;
		     case 8:
			     break;
		     default:
			     printf("Invalid Option\n");
			     break;

			     
	     
	     }
     }
     

     return 0;
}