第九周技术博客
我总结一下把 其实这两周实践真的很多
1.Java 学习了集合里面的
HashSet 学会了写hashCode()来方便HashSet对于重复元素的判断
ArrayList 学会了使用方法 顺便学了Iterator迭代器的使用
TreeSet 如何使用Comparable和Comparator接口来完成自动排序
学习了泛型类,泛型的基本使用方法
一共应该才200+行代码
2.HTML
帮忙同学们改改代码,自己做了小游戏什么的,多多少少1000行出头的代码把
几天把半学期甚至更多的知识学完了
可惜的是扫雷的算法没有写完整,有小bug
打地鼠基本完美
3.英语6级单词最近有点放松,应该继续努力,程序员英语需要很好才对!感觉接下来的四级稳稳的
4.数据结构我不喜欢老师写一半我们写一半的上机方式,我通常是自己写所有代码,甚至加入一点我觉得有必要的功能,来增加安全性。
接下来我还是发我觉得比较满意的代码把 就是这个子父节点的,可以选择在某个数据的节点加入子节点,不可以删除有兄弟节点,或者子节点、
这下在写博客的时候觉得有点可以改进 也就是有兄弟节点也可以删除 不然不符合情理,不过更改不难。
附上测试图
// BineryTree.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdlib.h" #include "stdio.h" typedef char datatype; typedef struct BineryTree { BineryTree * firstchild; BineryTree * sibling; datatype data; }BineryTree; BineryTree* initTree(datatype data); void myadd(BineryTree *a , datatype position, datatype data); BineryTree * findPosition(BineryTree* a, datatype position); int ifExist(BineryTree *a, datatype data); void myDel(BineryTree* a,datatype position); BineryTree * findPosition(BineryTree* a, datatype position) { if(a->data==position) return a; BineryTree* temp; if(a->firstchild!=NULL) { temp=findPosition(a->firstchild,position); if(temp!=NULL) return temp; } if(a->sibling!=NULL) { temp=findPosition(a->sibling,position); return temp; } return NULL; } /*如果存在函数*/ int ifExist(BineryTree *a, datatype data) { if(a->data==data) return 1; int temp; if(a->firstchild!=NULL) { temp=ifExist(a->firstchild,data); if(temp!=0) return temp; } if(a->sibling!=NULL) { temp=ifExist(a->sibling,data); return temp; } return 0; } /*添加 @param *a 传进来一个结构体变量 @param position 要插入在什么数据里面 @param data 要传入的数据 未完成 */ void myadd(BineryTree *a , datatype position, datatype data) { int e = ifExist(a,data); if(e==1) { printf("所插入的数据已经存在\n"); return; } BineryTree* temp = findPosition(a,position); if(temp==NULL) { printf("没有可插入的位置\n"); return; } if(temp->firstchild==NULL) { temp->firstchild=initTree(data); printf("成功插入数据%c\n",data); } else { temp=temp->firstchild; while(temp->sibling!=NULL){temp=temp->sibling;} temp->sibling=initTree(data); printf("成功插入数据%c\n",data); } } void myDel(BineryTree* a,datatype position) { int e = ifExist(a,position); if(e==0) { printf("没有可删除的数据\n"); return; } BineryTree * temp = findPosition(a,position); if(temp->firstchild!=NULL || temp->sibling!=NULL) { printf("不能删除因为有子节点或者兄弟节点\n"); return; } printf("成功删除数据%c\n",position); free(a); } BineryTree* initTree(datatype data) { BineryTree* temp = (BineryTree *)malloc(sizeof(BineryTree)); temp->firstchild=NULL; temp->sibling=NULL; temp->data=data; return temp; } void main(int argc, char* argv[]) { BineryTree * mytree = initTree('A'); myadd(mytree,'A','B'); myadd(mytree,'B','B'); myadd(mytree,'B','D'); myadd(mytree,'B','F'); myadd(mytree,'G','L'); myDel(mytree,'B'); myDel(mytree,'F'); }
posted on 2016-04-21 23:36 fanfans1996 阅读(159) 评论(1) 编辑 收藏 举报