单链表的创建--简单

文件结构:

//Link.java

package LinkList_Node;

import java.util.Scanner;

public class Link

{

  static node head;

  static node t;

  public Link()

  {

    head=new node();

  }

  //以下是前插法;

  public void insertHead(int val)

  {

    node cur=new node(val);  //新结点数据域

    cur.next=null;           //新结点指针域

    cur.next=head.next;   //新结点指向头结点的下一个

    head.next=cur;        //头结点指向新结点

  }

  //以下是尾插法;

  public void insertTail(int val)

  {

    node tmp;

    node cur=new node(val);

    tmp=head;

    while(tmp.next!=null)

    {

      tmp=tmp.next;

    }

    tmp.next=cur;

    cur.next=null;

  }

  public static void menu()

  {

    System.out.println("1.单链表前插");

    System.out.println("2.单链表后插");

  }

  public static void main(String[] args)

  {

    menu();

    int a[]=new int[3];

    Link it=new Link();

    // while(true)

    // {

    System.out.print("请输入:");

    Scanner in=new Scanner(System.in);

    int num=in.nextInt();

    switch(num)

    {

    case 1:

    {

      for(int i=0;i<3;i++)

      {

        Scanner input=new Scanner(System.in);

        a[i]=input.nextInt();

        it.insertHead(a[i]);

      }

      break;

    }

    case 2:

    {

      for(int i=0;i<3;i++)

      {

        Scanner input=new Scanner(System.in);

        a[i]=input.nextInt();

        it.insertTail(a[i]);

      }

      break;

    }

    default:

    System.out.println("输入错误");

    break;

  }

  t=head;  //t指向头结点

  for(int j=0;j<3;j++)     //输出结点的值

  {

    System.out.print(t.next.data+"  ");

    t=t.next;

  }

  // }

  }

}

运行结果:

原文地址:https://www.cnblogs.com/duanqibo/p/11134245.html

时间: 2024-11-09 06:26:07

单链表的创建--简单的相关文章

单链表 初始化 创建 头插法 尾插法 插入 删除 查找 合并 长度

#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR -1 #define TRUE 1 #define FALSE -1 #define NULL 0 #define OVERFLOW -2 #define ElemType int #define Status int typedef int ElemType typedef int Status #define LEN sizeof(LNode) #

单链表的创建算法

单链表的创建算法 当一个序列中只含有指向它的后继结点的链接时,就称该链表为单链表. 单链表的示意图如下: Head指针为单链表的头指针,单链表L:L既是单链表的名字,也是其头指针.链表中的最后一个结点的指针域定义为空指针(NULL). 单链表的定义: struct Node { ElemType data; struct Node *next; }; typedef struct Node LNode; typedef struct Node *LinkedList; 单链表有带头结点和不带头结

C++单链表的创建与操作

链表是一种动态数据结构,他的特点是用一组任意的存储单元(可以是连续的,也可以是不连续的)存放数据元素.链表中每一个元素成为“结点”,每一个结点都是由数据域和指针域组成的,每个结点中的指针域指向下一个结点.Head是“头指针”,表示链表的开始,用来指向第一个结点,而最后一个指针的指针域为NULL(空地址),表示链表的结束.可以看出链表结构必须利用指针才能实现,即一个结点中必须包含一个指针变量,用来存放下一个结点的地址.结点中只有一个next指针的链表称为单链表,这是最简单的链表结构. 首先定义一个

C语言写单链表的创建、释放、追加(即总是在最后的位置增加节点)

昨天周末给学妹讲了一些指针的知识,本来我对指针就是似懂非懂的状态,经过昨天一讲,我对指针的学习就更深刻了果然给别人讲课也是学习的一个方法.加上最近复习数据结构,发现我的博客里没有链表的博文,所以趁这时候加上一篇. 在此之前,我们先谈一下我要说的一些基本知识: ①函数参数为什么是双指针? 我们先写一下这么一个程序: # include<stdio.h>void Gai(int m){ m=5;}int main(void){ int a=1; Gai(a); printf("%d\n&

c语言之单链表的创建及排序

今天对之前学习过的链表知识进行简单的总结顺便写点代码:创建一个链表有头插法跟尾插法两种,在下面代码中我们为结点分配的内存实在堆上分配的,因此需要我们手动释放,释放用free()函数 下面代码贴出具体代码: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 struct person { 5 int age; 6 struct person *next; 7 }; 8 9 struct person *insert_head(struct

华南理工数据结构大作业第一题单链表 删除创建等各种简易操作

#include<iostream> #include<windows.h> #include<string> /* (1) 初始化单链表h: (2) 依次插入5个元素:{"张三" , 85}, {"李四" , 95}, {"王五" , 75}, {"陈军" , 80}, {"程涛" , 90} (3) 输出单链表h的内容: (4) 输出单链表的长度: (5) 输出单链表

单链表的创建以及功能的实现

#include<stdio.h> #include<stdlib.h> #include<math.h> typedef int DataType; typedef struct node{/*结点类型定义*/ DataType data;/*结点的数据域*/ struct node *next;/*结点的指针域*/ }ListNode,*LinkList; ListNode *p; LinkList head; /*注意:定义结点结构时,有几点需要注意:LinkLi

单链表的创建,插入,删除,遍历

1 #include<stdio.h> 2 #include<iostream> 3 #include<malloc.h> 4 #define OK 1 5 #define ERROR 0 6 using namespace std; 7 typedef struct LNode 8 { 9 int data; 10 struct LNode *next; 11 } LNode,*LinkList; 12 13 void Init(LinkList &L)///

使用OC实现单链表:创建、删除、插入、查询、遍历、反转、合并、判断相交、求成环入口

一.概念 链表和数组都是一种线性结构,数组有序存储的,链表是无序存储的. 数组中的每一个元素地址是递增或者递减的关系,链表的每一个节点的地址没有此规律,它们是通过指针的指向连接起来. 链表种类:单链表.双向链表.循环链表.双向循环链表 单链表:一个数据域data.一个后继指针域next.也即:上一个节点指向下一个节点,尾节点指向空. 双向链表:一个数据域data.一个前驱指针域previous.一个后继指针域next.也即:上一个节点和下一个节点互相指向,尾节点指向空. 循环链表:一个数据域da