搜档网
当前位置:搜档网 › 程序员复习资料

程序员复习资料

程序员复习资料
程序员复习资料

常考基础必知必会

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;

}

相关主题