数据结构单链表创建(头插法,尾插法)java/c/c++
来源:互联网 发布:网络信息安全宣传语 编辑:程序博客网 时间:2024/06/17 15:04
单链表
在单链表中,每一个节点都有一个指针域指向后继节点,从而形成一种链接的作用。
在c/c++中可以通过结构体的形式,通过指针形成链表,在java中可以通过类的形式来实现。
附上c/c++的单链表
struct Link{ int data; Link *next;};
头插法
顾名思义就是从头开始插入,插入的顺序会和链表中的数据发生颠倒。
//单链表头Link* creatSingleLinkHead() //默认是插入5个数字的测试{ Link *r; Link *link=(Link*)malloc(sizeof(Link)); link->next=NULL; //将最后的尾节点置为null for(int i=0;i<5;i++) { r=(Link*)malloc(sizeof(Link)); r->data=i; r->next=link->next; //将r的尾部=link的尾部,也就是null link->next=r; //将 r插入 } return link;}
以上的代码形成了一种将头部插入的方法,通过不断向头指针的next插入结构体达到目的。
尾插法
我们比较习惯的还是,插入的顺序要和存的数据的顺序一样,可以采用尾插法的方法,通过向尾部插入的方法。
刚开始学 的时候,总是想着不断给link.next赋值就能达到目的,但是这样是会让以前的数据丢失
Link* creatSingleLinkTail(){ Link *link=(Link*)malloc(sizeof(Link)); //用来记录头结点 Link *s,*r; r=link; //开始时候指向头结点 for(int i=0;i<5;i++) { s=(Link*)malloc(sizeof(Link)); s->data=i; r->next=s; //将s插入 r=s; //将r指向s,从而可以继续向后面插入 } r->next=NULL; //将尾结点赋值为空 return link;}
java代码实现
public class Link{ protected Link next; //指针域 protected int data;//数据域 public Link(int data) { this. data = data; } public int display() { return data; } }
先定义一个Link的类,定义一个指向后面的指针域,
照例,我们还是插入5个数据
public class SingleNode { private Link link; public SingleNode(){ link=new Link(0); } public void addToLinkTail(){ //尾插法 Link tempLink=link; for (int i=1;i<=5;i++){ Link linkAdd=new Link(i); tempLink.next= new Link(i); tempLink=linkAdd; } tempLink.next=null; } public void addToLinkHead(){ //头插法 link.next=null; for (int i=1;i<=5;i++){ Link linkAdd=new Link(i); linkAdd.next=link.next; link.next=linkAdd; } } public Link getLink(){ return link; }}
阅读全文
0 0
- 数据结构单链表创建(头插法,尾插法)java/c/c++
- 数据结构(栈)c/c++/java实现
- 【数据结构(C++)】单链表
- 数据结构 - 单链表(C++)
- 数据结构----单链表(c++)
- C语言-数据结构-创建栈
- 数据结构 - 反转单链表(C++)
- 数据结构之单链表(C++)
- C语言数据结构--(单链表)
- 数据结构(C实现)------- 单链表
- 【数据结构】实现单链表(c++)
- 数据结构之单链表——带有节点的单链表的创建、插入和删除(C/C++)
- 数据结构(C#)--单链表
- 数据结构(C#)--单链表
- c 数据结构 单链表
- 数据结构---单链表c实现
- C数据结构之单链表
- C数据结构 单链表操作
- hdu4513完美(马拉车模板题)
- bzoj2096 [Poi2010]Pilots
- SQL动态行转列
- Android 6.0 运行时权限处理完全解析
- [BZOJ1907]树的路径覆盖(贪心)
- 数据结构单链表创建(头插法,尾插法)java/c/c++
- 使用原生JavaScript实现jQuery的css选择器
- 输入一组数字,统计每个数字的个数后按序输出
- Codeforces Round #435 (Div. 2)C. Mahmoud and Ehab and the xor
- C语言如何改变一个常量的值和volatile关键字
- 实验一线性表的基本操作实现及其应用
- 实验一:数据结构顺序表的建立
- 常见的排序算法源代码
- 控制跳转语句break ,continue,return 的应用场景和区别