1、数组和链表
对于数组和链表而言,数组的每一个元素都有其对应的下标,例如
int array[]={1,2,3};
//array[1]=2;
/*
数组可以根据角标去查找元素,所以查找效率比较高,但是数组的增删非常不方便,因为需要移动大量的元素去实现增删
*/
链表:链表是弥补了数组的不足同时也有自己的缺点
链表的增删比较容易,但是失去了角标只能通过头结点一个一个去遍历
//链表的创建
//结构体的定义
struct node{
int data;
node* next;
}
//主函数
void main(){
node*head=NULL;
int i=0;
for(i;i<5;i++){
//接下来不停创建结点,然后赋值结点,最后结点连接有的结点
node* new_node=new node;
new_node->data=i;
new_node->next=head;
//继续
head=new_node;
}
}
怎么说呢,单链表的创建就是不停的获取新的结点,然后给结点赋值,同时给结点的link域,(指针域)赋值,让新结点指向老结点,最后将新结点变成头结点。
如果仔细观察,可以发现这个实际上是倒序增加结点的。
问题来了,如何翻转数组以及链表中的元素呢?