笔试面试前需要掌握的专业知识答案.docVIP

笔试面试前需要掌握的专业知识答案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
需要掌握的知识汇总 2007-9-22 前面是各种专业知识及里面所需要掌握的各种重点,后面是一些常用的技术点。 一.数据结构 程序运行中堆与栈的区别。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 排序二叉树的增、删、查等基本操作。 先把二叉树的基本思路和大致操作方法看一下书,然后敲敲代码练习一下。 这里我写了一个二叉树的增、查、删功能,写得不是很简洁。 #include cstdlib #include iostream using namespace std; typedef struct p { int value; struct p* left; struct p* right; } Point; int addPoint(Point **root, int targetValue) { if(*root == NULL) { *root = new Point(); (*root)-left = (*root)-right = NULL; (*root)-value = targetValue; return 0; } Point* p = *root; Point* q = *root; while(p != NULL) { q = p; if(q-value targetValue) p = q-right; else if(q-value targetValue) p = q-left; else return 0; } p = new Point(); p-left = p-right = NULL; p-value = targetValue; if(q-value targetValue) q-right = p; else if(q-value targetValue) q-left = p; return 0; } int showTree(Point* p) { if(p == NULL) return 0; showTree(p-left); coutp-value ; showTree(p-right); return 0; } int delPoint(Point **root, int targetValue) { if(*root == NULL) return 1; // 首先找到要删除的节点 Point* p = *root; Point* q = p; while(p != NULL) { if(p-value == targetValue) break; q = p; if(q-value targetValue) p = q-right; else if(q-value targetValue) p = q-left; } //如果没有对应值,则退出 if(p == NULL) return 1; //如果p没有右子树,则直接将左子树上移 if(p-right == NULL) { if(q-value targetValue) q-right = p-left; else if(q-value targetValue) q-left = p-left; delete p; return 0; } //如果p有右子树,则使用p的后继替换p Point* r = p-right; Point* s = p; while(r-left != NULL) { s = r; r = r-left; } if(s == p) { s-right = r-right; } else { s-left = r-right; } if(p == *root) *root = r; else { if(q-value targetValue) q-right = r; else if(q-value targetValue) q-left = r; } r-left = p-left; r-right = p-right; delete p; return 0; } int main(int argc, char *argv[]) { Poin

文档评论(0)

bhl0572 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档