刚看到一篇文章,http://news.csdn.net/a/20100719/219154.html
说面试的一道题目是:
把N个元素插入到一个Vector里(或者ArrayList,或其它的你所选择的语言里被称作动态数组的东西)。
我的想法是,创建一个新的单向链表,这个链表插入新数据是在头部,而不是尾部。这样就可以了。
如Struct List{
struct List * next;
void * data;
};
Struct List *head=(struct List *)malloc(sizeof(struct List));
head->data=NULL;
head->next=NULL;
循环,依次读取那个单向链表的值。
struct List *prevEntry=****;
if(head->next!=NULL){
prevEntry->next=head->next;
head->next=prevEntry;
}else{
head->next=prev;
}
这样从head开始的数据就是反向排列的。
当然这个方法没有任何优化。仓促写就。