程序员复习资料

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常考基础必知必会

A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的算法;

B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别?

C. 链表和数组的区别,在什么情况下用链表什么情况下用数组?

D. 栈和队列的区别?

E. 多态,举例说明;overload和override的区别?

F. 字符串有关的函数,比如让你写一个拷贝字符串的函数啊,或者字符串反转啊什么的。strcpy和memcpy?

G. 继承、多继承?

H. 面向对象有什么好处?

I. 说说static的与众不同之处,如果一个变量被声明为static,它会被分配在哪里?在什么时候分配空间等?

J. 什么是虚函数、纯虚函数、虚的析构函数,用途?

K. 内存泄漏及解决方法?

网络部分:

OSI模型7层结构,TCP/IP模型结构?

B. TCP/UDP区别?

C. TCP建立连接的步骤?

D. 香农定理?

二叉树三种遍历的非递归算法

1.先序遍历非递归算法

#define maxsize 100

typedef struct

{

Bitree Elem[maxsize];

int top;

}SqStack;

void PreOrderUnrec(Bitree t)

{

SqStack s;

StackInit(s);

p=t;

while (p!=null || !StackEmpty(s))

{

while (p!=null) //遍历左子树

{

visite(p->data);

push(s,p);

p=p->lchild;

}//endwhile

if (!StackEmpty(s)) //通过下一次循环中的内嵌while实现右子树遍历{

p=pop(s);

p=p->rchild;

}//endif

}//endwhile

}//PreOrderUnrec

2.中序遍历非递归算法

#define maxsize 100

typedef struct

{

Bitree Elem[maxsize];

int top;

}SqStack;

void InOrderUnrec(Bitree t)

{

SqStack s;

StackInit(s);

p=t;

while (p!=null || !StackEmpty(s))

{

while (p!=null) //遍历左子树

{

push(s,p);

p=p->lchild;

}//endwhile

if (!StackEmpty(s))

{

p=pop(s);

visite(p->data); //访问根结点

p=p->rchild; //通过下一次循环实现右子树遍历}//endif

}//endwhile

}//InOrderUnrec

3.后序遍历非递归算法

#define maxsize 100

typedef enum{L,R} tagtype;

typedef struct

{

Bitree ptr;

tagtype tag;

}stacknode;

typedef struct

{

stacknode Elem[maxsize];

int top;

}SqStack;

//后序遍历

void PostOrderUnrec(Bitree t)

{

SqStack s;

stacknode x;

StackInit(s);

p=t;

do

{

while (p!=null) //遍历左子树

{

x.ptr = p;

x.tag = L; //标记为左子树

push(s,x);

p=p->lchild;

}

while (!StackEmpty(s) &&s.Elem[s.top].tag==R)

{

x = pop(s);

p = x.ptr;

visite(p->data); //tag为R,表示右子树访问完毕,故访问根结点}

if (!StackEmpty(s))

{

s.Elem[s.top].tag =R; //遍历右子树

p=s.Elem[s.top].ptr->rchild;

}

}while (!StackEmpty(s));

}//PostOrderUnrec

3.后序遍历非递归算法

#define maxsize 100

typedef enum{L,R} tagtype;

typedef struct

{

Bitree ptr;

tagtype tag;

}stacknode;

typedef struct

{

stacknode Elem[maxsize];

int top;

}SqStack;

//后序遍历

void PostOrderUnrec(Bitree t)

{

SqStack s;

stacknode x;

StackInit(s);

p=t;

do

{

while (p!=null) //遍历左子树

{

x.ptr = p;

x.tag = L; //标记为左子树

push(s,x);

p=p->lchild;

}

相关文档
最新文档