51Testing软件测试论坛
标题:
最近遇到的面试题!!!
[打印本页]
作者:
chunli29
时间:
2007-3-2 15:11
标题:
最近遇到的面试题!!!
1)写一个函数,完成内存之间的拷贝。
2)给定一个单向链表中的头节点,将此单向链表逆序,即原来的头节点变成末节点。
谢谢大虾们了,急需这两个面试题答案!!!
作者:
JaneGu
时间:
2007-3-3 23:44
标题:
回答第二个问题
单链表逆序有两种方法:第一种是再建一个新链表,拷贝原链表内容,往前插入新链表。这种方法要耗内存空间。
第二种方法就是在原链表上改指针指向。我用C语言写了一段供参考。
if (head<>NULL)
{
p = head;
q = p->next;
if (q->next == NULL)
{
p->next = NULL;
q->next = p;
head = q;
}
else
{
While (q->next<>NULL)
{
if (p == head)
p->next = NULL;
head = q->next;
q->next = p;
p = q;
q = head;
}
}
}
作者:
g_win
时间:
2007-3-4 10:30
看来lz是在编程方面较欠缺,恶补一下就应该能很快写出来了
作者:
guolm1225
时间:
2007-3-5 09:44
全是考得烂的不能再烂的题目了,楼主真想面试的话,花点心思就一点问题都没有了
作者:
Rosetan
时间:
2007-3-5 15:04
google一下,答案就有了。
作者:
archonwang
时间:
2007-3-5 16:10
标题:
C写的
1)写一个函数,完成内存之间的拷贝。
答:
void* mymemcpy( void *dest, const void *src, size_t count )
{
char* pdest = static_cast<char*>( dest );
const char* psrc = static_cast<const char*>( src );
if( pdest>psrc && pdest<psrc+cout ) 能考虑到这种情况就行了
{
for( size_t i=count-1; i!=-1; --i )
pdest = psrc;
}
else
{
for( size_t i=0; i<count; ++i )
pdest = psrc;
}
return dest;
}
int main( void )
{
char str[] = "0123456789";
mymemcpy( str+1, str+0, 9 );
cout << str << endl;
system( "Pause" );
return 0;
}
作者:
hanxing520
时间:
2007-3-6 09:37
标题:
牛人
各位真是牛人啊....佩服...
作者:
disparaitre
时间:
2007-3-6 21:50
第二题想到一个笨办法,做个堆栈,全压进去,再全弹出来,就反过来了
方法笨了点
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2