/*******************************************************************node
100-4.题目:在二元树中找出和为某一值的全部路径ios
输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所通过的全部结点造成一条路径。 打印出和与输入整数相等的全部路径。例如输入整数22 和二元树则打印出两条路径:10, 12 和10, 5, 7。spa
\*******************************************************************指针
#include <iostream> #include <vector> using namespace std; typedef struct BTreeNode{ int data; BTreeNode *left; BTreeNode *right; }BTreeNode,*BTree; void add_btreenode(BTreeNode *&a_tree,int value){ if(a_tree == NULL){ a_tree = new BTreeNode(); a_tree->data = value; a_tree->left = NULL; a_tree->right = NULL; cout<<a_tree->data<<endl; }else if(value < a_tree->data){ add_btreenode(a_tree->left,value); }else if(value > a_tree->data){ add_btreenode(a_tree->right,value); } } void preorder_btree(BTreeNode *a_tree,vector<int> v,int sum,int given){ if(a_tree != NULL){ sum += a_tree->data; v.push_back(a_tree->data); cout<<"sum:"<<sum<<':'<<a_tree->data<<' '; if(a_tree->right == NULL && a_tree->left == NULL){ if(sum == given){ for (vector<int>::iterator iter=v.begin();iter!=v.end();iter++){ cout<<*iter<<" "; } cout<<endl; } } cout<<"l"; preorder_btree(a_tree->left,v,sum,given); cout<<"r"; preorder_btree(a_tree->right,v,sum,given); v.pop_back(); sum -= a_tree->data; } } int main(){ int a[] ={4,3,5,2,9}; BTreeNode *a_tree=NULL; for(int i=0;i<5;i++){ cout<<a[i]<<':'; add_btreenode(a_tree,a[i]); } cout<<"######"<<endl; vector<int> v; int given=9; int sum=0; preorder_btree(a_tree,v,sum,given); return 0; }
指针:code
指针是一个变量,其值为另外一个变量的地址,即,内存位置的直接地址。内存
#include <iostream> using namespace std; int main(){ int *p; int a = 10; p = &a; cout<<"a:"<<a<<endl; //a:10 cout<<"p:"<<p<<endl; //p:0x7fff5b42fb2c cout<<"*p:"<<*p<<endl; //*p:10 return 0; }