精华内容
下载资源
问答
  • 尾插法建立单链表

    2021-03-24 16:19:30
    `尾插法建立单链表:每次将新生成的结点插入到链表后面,使其成为新的表尾结点 编写一个函数,将键盘输入的整数序列依次存入初始为空的单链表中,函数返回新建单链表第一个结点地址 【分析】建立单链表head,可以从空...

    `尾插法建立单链表:每次将新生成的结点插入到链表后面,使其成为新的表尾结点
    编写一个函数,将键盘输入的整数序列依次存入初始为空的单链表中,函数返回新建单链表第一个结点地址
    【分析】建立单链表head,可以从空表开始,依次将新生成的结点插入到链表中,为统一处理,我们将每次将新生成的结点插入到链表后面,使其成为新的表尾结点,我们把这种方式称为尾插法建立单链表。为操作方便,我们可以增设一个表尾指针tail,时刻指向单链表的表尾结点。

    #include <stdio.h>
    #include <stdlib.h>
    struct node
    {
        int data;
        struct node *next;
    };
    typedef struct node linknode;
    typedef linknode *linklist;
    
    linklist creatLink()
    {
        linklist head,tail,q;
        int x;
        head=tail=NULL;//初始化链表
        printf("请输入整数序列,以空格分隔,以0做结束:\n");
        scanf("%d",&x);
        while("x!=0")
        {
            q=(linklist)malloc(sizeof(linknode));//动态申请内存空间,生成新结点
            q->data=x;
            if(head==NULL)//原链表为空
                head=tail=q;
            else//原链表不为空
            {
                tail->next=q;
                tail=q;
            }
            scanf("%d",&x);
        }
        if(tail!=NULL)tail->next=NULL;//置链表结束标志
        return head;
    }
    int main()
    {
        linklist head;
        head=creatLink();
        return 0;
    }
    

    单链表的遍历(输出)

    void print(linklist head)
    {
        linklist p=head;
        printf("List:\n");
        while(p!=NULL)
        {
            printf("%5d",p->data);
        }
        printf("\n");
    }
    
    
    
    
    
    展开全文
  • 尾插法建立单链表 LinkList TailInsert(LinkList &L);//正向建立单链表 下面展示一些 代码。 //头插法逆向建立单链表 // 原理:初始化一个单链表 然后 以头结点为目标(指定节点) 对其进行后插操作 ...

    单链表的建立(头插法和尾插法)

    • 头插法建立单链表

    LinkList HeadInsert(LinkList &L);//逆向建立单链表
    // 原理:初始化一个单链表 然后 以头结点为目标(指定节点) 对其进行后插操作

    • 尾插法建立单链表

    LinkList TailInsert(LinkList &L);//正向建立单链表

    下面展示一些 代码。

    //头插法逆向建立单链表 
    // 原理:初始化一个单链表  然后 以头结点为目标(指定节点) 对其进行后插操作 
    LinkList HeadInsert(LinkList &L){
    	LNode *s;
    	int x;
    	L = (LNode *)malloc(sizeof(LNode));
    	L->next = NULL;// 这句在头插法里必不可少的 因为 L->next的数据在下面会用到 如果不初始化就会内存中遗留的数据 
    	cout<<"请输入一个数字:"<<endl<<"(输入111时表示输入结束)";
    	cin>>x;
    	while(x != 111){
    		s = (LNode *)malloc(sizeof(LNode));
    		s->data = x;
    		s->next = L->next;
    		L->next = s;
    		cout<<"请输入一个数字:"<<endl<<"(输入111时表示输入结束)";
    		cin>>x;
    	}
    	return L;
    } 
    
    
    // 尾插法正向建立单向链表 
    LinkList TailInsert(LinkList &L){
    	int x;
    	L = (LNode *)malloc(sizeof(LNode));
    	LinkList s, r = L;
    	L->next = NULL;  //尾插法有无这句都可以  因为用不到L->next中的数据 它会被直接覆盖掉 
    	cout<<"请输入一个数字:"<<endl<<"(输入111时表示输入结束)";
    	cin>>x;
    	while(x != 111){
    		s = (LNode *)malloc(sizeof(LNode));
    		s->data = x;
    		r->next = s;
    		r = s;// r指向新的表尾结点 
    		cout<<"请输入一个数字:"<<endl<<"(输入111时表示输入结束)";
    		cin>>x;
    	}
    	r->next = NULL;//尾结点指针置空 
    	return L; 
    }
    
    展开全文
  • 头插法与尾插法建立单链表 import java.util.*; class Node { int value; Node next; Node(int x) { value = x; } } public class 一个单链表 { public static void main(String[] args) { List&...
    头插法与尾插法建立单链表
    import java.util.*;
    class Node {
        int value;
        Node next;
        Node(int x) {
            value = x;
        }
    }
    public class 一个单链表 {
        public static void main(String[] args) {
            List<Node> list = new LinkedList<>();
            for (int i = 0; i < 10; i++) {
                Node node = new Node(i + 1);
                list.add(node);
            }
            Node head = new Node(0);
            head.next = null;
            for (int i = 0; i < 10; i++) {
                list.get(i).next = head.next; // 头插法
                head.next = list.get(i);
            }
           /* Node rear = head;
            for (int i = 0; i < 10; i++) {
                rear.next = list.get(i); // 尾插法
                list.get(i).next = null;
                rear = list.get(i);
            }
            */
            Node dummy = head;
            while (dummy.next != null) {
                dummy = dummy.next;
                System.out.println(dummy.value);
            }
        }
    }
    
    展开全文
  • /*使用尾插法建立单链表,并返回指向单链表的头结点的指针*/ Node *CreateAtTail(DataType a[],int n) { int i; Node *first,*s,*r; /************Begin******************/ first->next=NULL; r=first=...
    /*使用尾插法建立单链表,并返回指向单链表的头结点的指针*/
    Node *CreateAtTail(DataType a[],int n)
    {
        int i;
    	Node *first,*s,*r;
    	/************Begin******************/
        first->next=NULL;
        r=first=(Node*)malloc(sizeof(Node));
        first->next==NULL;
        for(int i=0;i<n;i++)
        {
            s=(Node*)malloc(sizeof(Node));
           s->data=a[i];
           r->next=s;
           r=s;
        }
        r->next=NULL;
        return first;
        
        /************End*******************/
        return first;
    }
    
    
    展开全文
  • /*头插法和尾插法建立单链表*/ #include &lt;iostream&gt; using namespace std; typedef int ElemType; typedef struct LNode { ElemType data;//定义数据域,存放元素值 struct LNode *next; }...
  • 尾插法建立单链表,并输出链表

    千次阅读 2020-03-05 16:47:39
    #include <stdio.h> #include <stdlib.h> typedef struct LNode { int data ; struct LNode *next; } LNode,*LinkList; LinkList L;...LinkList insert()//尾插法建立单链表; { ...
  • 尾插法建立单链表 c

    千次阅读 2011-01-14 10:17:00
    尾插法建立单链表 c
  • 本题要求采用尾插法建立单链表并输出链表 #include<stdio.h> #include<stdlib.h> typedef int DataType; struct Node { DataType data; struct Node* next; }; typedef struct Node *PNode; typedef...
  • #include<iostream> using namespace std; typedef struct lnode{ //单链表的节点定义 int data; struct lnode*next;...c,int a[],int n){ //尾插法建立单链表的函数 lnode *r,*s; int i; c=ne...
  • A和B是两个单链表(带表头结点),其中元素递增有序。设计一个算法,将A和B归 并成一个按元素值非递减有序的链表 C,C由A 和B 中的结点组成。 #include<...尾插法建立单链表 */ void createlistR(LNode
  • 分别使用头插法和尾插法建立单链表 头插法 #include <stdio.h> #include<stdlib.h> #include<iostream> #include<string> typedef int Status; typedef int ElemType; typedef struct Node{...
  • => 分为 头插法 和 尾插法 步骤:(带头结点情况) 1. 初始化一个单链表 2. 每次取一个数据元素,插入到表尾/表头 ...尾插法建立单链表: 初始化单链表 设置变量 length 记录链表长度 ...
  • 尾插法建立单链表 LinkList List_TailInsert(LinkList &L) { int x; L=(LinkList)malloc(sizeof(LNode)); LNode *s,*r=L;//s为要插入的新节点的指针,r为尾指针 scanf("%d",&x); while(x!=99)//当输入...
  • 2、尾插法建立单链表 3、按序号查找结点值 4、按值查找表结点 5、插入结点操作 6、删除操作 7、求表长 本篇博客的结点数据结构如下: typedef struct LNode { ElemType data; struct LNode *next; }...
  • #include#include#include#includetypedef struct linklist{int x;struct linklist *next;}linklist;linklist *create_linklist1(linklist *...//头插创建链表linklist *create_linklist2(linklist *head,int n)...
  • 采用头插法和尾插法建立单链表

    万次阅读 多人点赞 2017-03-17 15:25:50
    采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示。 图2-4 头插法建立单链表 头插法建立...
  • #include #include struct ListNode { char data; struct ListNode* Next; };...//尾插法建立单链表 struct ListNode* CreateList() { char ch; struct ListNode* head,*r;//头指针,搜索指针;
  • 在做Acwing 和力扣的编程时,经常有一个节点是ListNode,由于自身比较菜的原因一致不知道怎么利用已有已知结构体根据输入利用尾插法创立单链表。 经过查阅资料,理解和最后实现如下: ListNode结构体的定义 struct ...
  • L){ //正向建立单链表 int x; L=(LinkList)malloc(sizeof(LNode)); //建立头结点 LNode *s,*r=L; //r为表尾指针 scanf("%d",&x); //输入结点的值 while(x!=9999){ //输入9999表示结束 s=...
  • 尾插法建立链表 一、链表是什么? 链表是一种常见的基础数据结构,并且充分的利用到了结构体指针。可以将链表看成一种功能强大的数组,可以在节点中定义多种数据类型,可以随意添加、删除和插入节点。链表都有一个头...
  • 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示。 图2-4 头插法建立单链表 头插...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 696
精华内容 278
关键字:

尾插法建立单链表