数据结构与算法(1、数组和链表)
2015-06-03 23:08
351 查看
1、数组和链表
对于数组和链表而言,数组的每一个元素都有其对应的下标,例如
链表:链表是弥补了数组的不足同时也有自己的缺点
链表的增删比较容易,但是失去了角标只能通过头结点一个一个去遍历
怎么说呢,单链表的创建就是不停的获取新的结点,然后给结点赋值,同时给结点的link域,(指针域)赋值,让新结点指向老结点,最后将新结点变成头结点。
如果仔细观察,可以发现这个实际上是倒序增加结点的。
问题来了,如何翻转数组以及链表中的元素呢?
对于数组和链表而言,数组的每一个元素都有其对应的下标,例如
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域,(指针域)赋值,让新结点指向老结点,最后将新结点变成头结点。
如果仔细观察,可以发现这个实际上是倒序增加结点的。
问题来了,如何翻转数组以及链表中的元素呢?
相关文章推荐
- 数据结构之---C语言实现广义表头尾链表存储表示
- 数据结构学习--稀疏矩阵的三元组表示
- 数据结构 c++ 广义表
- GLIB 常用数据结构介绍 3
- GLIB 常用数据结构介绍 4
- GLIB 常用数据结构介绍 2
- GLIB 常用数据结构介绍 1
- <数据结构学习与实验指导>2-6数列求和/2-7素因子分解/
- 数据结构笔记二
- <数据结构学习与实验指导>2-5求集合数据的均方差
- <数据结构学习与实验指导>2-4递增链表的插入
- 线性结构
- 数据结构
- 2. C#数据结构与算法 -- 查找算法(顺序查找,哈希查找,二分查找(折半),索引,二叉)
- <数据结构学习与实验指导>2-3整数分解为若干项之和
- 简单数据结构之顺序表(C实现)
- 1. C#数据结构与算法 -- 排序(插入,冒泡,希尔,快速,选择)
- <数据结构学习与实验指导>2-2数组元素循环右移问题
- 数据结构笔记一
- Android JNI 使用的数据结构JNINativeMethod详解