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

    2021-03-25 18:27:05
    通过画利用尾插法构建单链表的示意图帮助分析,然后转化为代码的方法,很可行。当然,前提是需要知道某个阶段示意图对应的是什么代码。【算法代码】 #include <bits/stdc++.h> using namespace std; struct...

     

    【算法设计思路】
    通过画利用尾插法构建单链表的示意图帮助分析,然后转化为代码的方法,很可行。当然,前提是需要知道某个阶段示意图对应的是什么代码。

    【算法代码】

    #include <bits/stdc++.h>
    using namespace std;
    
    struct Node {
    	char data;
    	Node *next;
    };
    
    void wcf(Node *L,int n) {
    	L=new Node;
    	L->next=NULL;
    	Node *r;
    	r=L;
    	for(int i=0; i<n; i++) {
    		Node *p;
    		p=new Node;
    		p->next=NULL;
    		cin>>p->data;
    		r->next=p;
    		r=p;
    	}
    
    	for(int i=0; i<n; i++) {
    		cout<<L->next->data<<" ";
    		L->next=L->next->next;
    	}
    }
    
    int main() {
    	int n;
    	cin>>n;
    	Node *p;
    	wcf(p,n);
    
    	return 0;
    }
    
    
    /*
    in:
    7
    a b c d e f g
    
    out:
    a b c d e f g
    */
    

     

    展开全文
  • PTA 5-3本题目要求利用尾插法建立单链表 #输入格式: 输入数据为若干正整数,最后以-1表示结尾(-1不算在序列内,不要处理)。所有数据之间用空格分隔。 #输入样例: 1 2 3 4 5 6 7 8 9 -1 #输出样例: 1 2 3 4 5 6 ...

    PTA 5-3本题目要求利用尾插法建立单链表

    #输入格式:

    输入数据为若干正整数,最后以-1表示结尾(-1不算在序列内,不要处理)。所有数据之间用空格分隔。

    #输入样例:

    1 2 3 4 5 6 7 8 9 -1
    #输出样例:

    1 2 3 4 5 6 7 8 9

    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef int ElemType;
    typedef struct LNode
    {
        ElemType data;
        struct LNode *next;
    }LNode,*LinkList;
    
    LinkList Create();
    void print( LinkList L);
    
    int main()
    {
        LinkList L = Create();
        print(L);
        return 0;
    }
    LinkList Create()
    {
        LinkList L,p,s;
        ElemType e;
        L = (LinkList)malloc(sizeof(LNode));
        L->next=NULL;
        
    p=L
    ;
        scanf("%d",&e);
        while(e!=-1)
        {
            s = (LinkList)malloc(sizeof(LNode));
            s->data=e;
            
    p->next=s
    ;
            
    p=p->next
    ;
              scanf("%d",&e);
        }
        p->next=NULL;
        
    return L
    ;
    }
    void print(LinkList L)
    { 
        LinkList p;
        p=L->next;
        while (p)
        {
             printf("%d ", p->data);
             p =p->next;
        }
    }
    
    展开全文
  • #include <iostream> #include <stdlib.h> #include <cstdio> typedef int ElemType; using namespace std; //单链表的结构体 ...//头插法建立单链表 LinkList List_HeadInsert(LinkList &.
    #include <iostream>
    #include <stdlib.h>
    #include <cstdio>
    typedef int ElemType;
    using namespace std;
    //单链表的结构体
    typedef struct LNode
    {
        ElemType data;
        LNode *next;
    }LNode,*LinkList;
    //头插法建立单链表
    LinkList List_HeadInsert(LinkList &L)
    {
        L=(LNode *)malloc(sizeof(LNode));
        L->next=NULL;
        LNode *s;//s为新插入结点的指针
        int x;
        scanf("%d",&x);
        while(x!=9999){
            s=(LNode *)malloc(sizeof(LNode));//为新结点分配一片内存空间,并将该内存空间的返回地址赋值给s
            s->data=x;
            s->next=L->next;//将s插入到头结点之后
            L->next=s;
            scanf("%d",&x);
        }
        return L;
    }
    //尾插法建立单链表
    LinkList List_TailInsert(LinkList &L)
    {
        L=(LNode *)malloc(sizeof(LNode));
        L->next=NULL;
        LNode *s;
        LNode *r=L;//r为尾指针
        int x;
        scanf("%d",&x);
        while(x!=9999)
        {
            s=(LNode *)malloc(sizeof(LNode));
            s->data=x;
            r->next=s;//将s插入在r之后
            r=s;//将r向后移动,保证r一直是尾指针
            scanf("%d",&x);
        }
        r->next=NULL;//将尾指针的next置为空,防止其指向其他内存空间
        return L;
    }
    //单链表的原地逆置
    LinkList Reverse(LinkList &L)
    {
        LNode *p=L->next;//用p保存L的next域
        L->next=NULL;//将L的next域置为空
        LNode *r;
        while(p!=NULL)
        {
            r=p->next;//用r来保存p的next域,防止断链
            p->next=L->next;//将p插入在L之后
            L->next=p;
            p=r;//将p向后移动
        }
        return L;
    }
    //打印输出单链表
    ElemType PrintList(LinkList L)
    {
        LNode *p=L->next;
        while(p!=NULL)
        {
            cout<<p->data<<"  ";
            p=p->next;
        }
        cout<<endl;
        return 0;
    }
    int main()
    {
        LinkList L1;//声明单链表
        cout<<"请输入单链表L1中的数据元素:"<<endl;
        List_HeadInsert(L1);//头插法建表
        cout<<"头插法建立单链表的结果为:"<<endl;
        PrintList(L1);//打印输出单链表
        Reverse(L1);//单链表原地逆置
        cout<<"将此单链表原地逆置的结果为:"<<endl;
        PrintList(L1);//打印输出单链表
        LinkList L2;
        cout<<"请输入单链表L2中的数据元素:"<<endl;
        List_TailInsert(L2);
        cout<<"尾插法建立单链表的结果为:"<<endl;
        PrintList(L2);
        return 0;
    }
    

     
    展开全文
  • 尾插法建立单链表 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&...
  • <code>#include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; ...补充代码完善程序</p>
  • 带头结点的头插法、尾插法 1.头插法 2.尾插法 typedef struct LNode{ int data; struct LNode *next; }LNode, *LinkList; //初始化单链表(带头结点) bool InitList(LinkList &L){ L = (LNode *) ...
  • 尾插法建立链表 一、链表是什么? 链表是一种常见的基础数据结构,并且充分的利用到了结构体指针。可以将链表看成一种功能强大的数组,可以在节点中定义多种数据类型,可以随意添加、删除和插入节点。链表都有一个头...
  • 在做Acwing 和力扣的编程时,经常有一个节点是ListNode,由于自身比较菜的原因一致不知道怎么利用已有已知结构体根据输入利用尾插法创立单链表。 经过查阅资料,理解和最后实现如下: ListNode结构体的定义 struct ...
  • //删除(仅保留一个表头结点) } } //前插法建立单链表 public void inputFront(ListNode5 engTag){ //endTag是约定的输入序列结束的标志,如果输入序列是正整数,engTag可以是0或负数 //如果输入序列是...
  • 一、信息须知: 1:malloc()函数,头文件为cstdlib。 用法:node *p=(node )malloc(sizeof(node))。作用:分配一个node类型大小的内存空间, 并把其赋值给node 型的...2、尾插法思路图示分析 三、代码展示: //以" &am
  • C/C++尾插法建立单链表

    千次阅读 2020-12-02 02:45:25
    思路: 一个s指针指向新建节点 一个节点指向尾节点 C++中有引用,写出来很简单,下面给出的是天勤数据结构高分笔记上面的写法(疯狂吐槽这种C和C++混用的方法) #include<iostream> #include<...
  • /*使用尾插法建立单链表,并返回指向单链表的头结点的指针*/ Node *CreateAtTail(DataType a[],int n) { int i; Node *first,*s,*r; /************Begin******************/ first->next=NULL; r=first=...
  • 输入一个正整数序列,遇负数时停止,建立一个线性链表存储读入的数据,将各个元素按顺序输出。 样例输入 Copy 1 2 3 4 5 -1 样例输出 Copy 1 2 3 4 5 #include <iostream> #include<stdio.h> #include&...
  • 采用尾插法建立单链表并输出链表

    千次阅读 2020-10-01 18:36:24
    代码如下`` #include<stdio.h> #include<stdlib.h> typedef int DataType; struct Node { DataType data; struct Node* next; }; typedef struct Node *PNode; ... LinkList head =
  • 尾插法建立单链表,并输出链表

    千次阅读 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()//尾插法建立单链表; { ...
  • => 分为 头插法 和 尾插法 步骤:(带头结点情况) 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; }...
  • 02尾插法建立单链表.cpp
  • 分别使用头插法和尾插法建立单链表 头插法 #include <stdio.h> #include<stdlib.h> #include<iostream> #include<string> typedef int Status; typedef int ElemType; typedef struct Node{...
  • 头插法和尾插法建立单链表

    万次阅读 多人点赞 2018-07-24 22:45:37
    在进行单链表的基本运算之前必须先建立单链表建立单链表的常用方法有两种:...头插法建表虽然简单,但生成的链表中节点的次序和原数组的次序相反,若希望两者的次序一致,可采用尾插法建立   尾插法建表,该算...
  • 尾插法建立单链表,删除重复元素,而元素的值自行输入 代码如下: //尾插法建立单链表,删除重复元素,而元素的值自行输入 #include<stdio.h> #include<stdlib.h> #include<time.h> typedef int ...
  • 采用头插法和尾插法建立单链表

    万次阅读 多人点赞 2017-03-17 15:25:50
    采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示。 图2-4 头插法建立单链表 头插法建立...
  • 单链表的建立(C语言):头插法和尾插法建立单链表

    万次阅读 多人点赞 2017-11-07 09:12:28
    采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示。 图2-4 头插法建立单链表 头插...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,671
精华内容 3,068
关键字:

尾插法建立单链表