数据结构与算法(1、数组和链表)

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域,(指针域)赋值,让新结点指向老结点,最后将新结点变成头结点。
如果仔细观察,可以发现这个实际上是倒序增加结点的。
问题来了,如何翻转数组以及链表中的元素呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值