用指针形成链的小心得
来源:互联网 发布:人人下载器 for mac 编辑:程序博客网 时间:2024/05/30 13:43
心得:
今天晚上写指针到1点才把问题解决, 还是挺高兴的, 并且还不感觉累, 所以我抓紧写一下今天晚上的心得;
(1):对某个A指针操作, 通过把他赋给另外一个B指针并且对此B指针的各种操作都对A指针没有影响, 就是不能改变A的任何属性。
(2):如果想通过指针形成一条链(链表,二叉树, 二叉搜索等),只能对本节点指向下一个节点的指针直接赋下一个节点的地址,
而不能把本节点指向下一个节点的指针赋给另外一个指针,对另外一个指针赋下一个节点的地址, 这是不能形成一条链的(切记)。
今天晚上写指针到1点才把问题解决, 还是挺高兴的, 并且还不感觉累, 所以我抓紧写一下今天晚上的心得;
(1):对某个A指针操作, 通过把他赋给另外一个B指针并且对此B指针的各种操作都对A指针没有影响, 就是不能改变A的任何属性。
(2):如果想通过指针形成一条链(链表,二叉树, 二叉搜索等),只能对本节点指向下一个节点的指针直接赋下一个节点的地址,
而不能把本节点指向下一个节点的指针赋给另外一个指针,对另外一个指针赋下一个节点的地址, 这是不能形成一条链的(切记)。
(3):不放弃。 对自己认为自己的方法或想法可以完成的东西, 要坚持实现, 既可以挑战自己, 又可以学到很多知识,并且很有乐趣。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;char A[15];int cnt;struct Node{ char v; Node *left, *right;};Node* build(char c){ Node * p; p = (Node*)malloc(sizeof(Node)); p->v = c; p->left = p->right = NULL; return p;}Node* creat(Node* root, char s[]){ for(int i = 0; i < strlen(s); i++) { Node *pb, *pf = root; if(!root) root = pf = build(s[i]); else { pb = build(s[i]); while(1) { if(s[i]>pf->v) { if(pf->right == NULL) { pf->right = pb; break; } else pf = pf->right; } else { if(pf->left == NULL) { pf->left = pb; break; } else pf = pf->left; } } } } return root;}void Inorder(Node* root){ if(!root) return; A[cnt] = root->v; Inorder(root->left); Inorder(root->right);}void Outorder(Node* root){ if(!root) return; Outorder(root->left); Outorder(root->right); A[cnt++] = root->v;}void Preorder(Node* root){ if(!root) return; Preorder(root->left); A[cnt++] = root->v; Preorder(root->right);}int main(){ int n; char s[15]; scanf("%d", &n); while(n--) { scanf("%s", s); Node *root = NULL; root = creat(root, s); memset(A, 0, sizeof(A)); cnt = 0; Inorder(root); printf("%s\n", A); memset(A, 0, sizeof(A)); cnt = 0; Outorder(root); printf("%s\n", A); memset(A, 0, sizeof(A)); cnt = 0; Preorder(root); printf("%s\n", A); } return 0;}
0 0
- 用指针形成链的小心得
- 新手的小心得
- 得小心的题
- typedef的小心得
- c语言指针使用小心得
- fgets函数的小心得
- OOA的一点小心得!
- 编程的一些小心得
- 最近的一点点小心得
- 耳机的选择小心得
- dede的一些小心得
- github的一点小心得
- 学习Opencv的小心得
- 有关蓝牙的小心得
- 小心指针的备份
- 小心得
- 小心得
- 小心,得!
- forwardInvocation
- CentOS下的rabbitMQ集群安装,高并发消息队列中间件(何志雄)
- 【Android四大组件之Service】
- swift中的微信分享
- PHP实现防盗链
- 用指针形成链的小心得
- 在vi里面执行ctrl -z [undo]和[reundo]操作
- 教你如何在Win7系统中批量更改文件名
- 自己对mysql中的Join的理解
- jQuery autocomplete1.1.2插件使用说明
- java设计模式入门(3)装饰者模式
- USACO--2.1The Castle
- 中国的企业法律服务怎样才能避免法律风险?
- 封装、包、访问控制小结