-
尾插法建立单链表
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"); }
-
头插法、尾插法建立单链表
2021-02-07 19:47:48尾插法建立单链表 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; }
-
头插法与尾插法建立单链表
2020-03-02 10:44:40头插法与尾插法建立单链表 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); } } }
-
尾插法建立单链表educoder
2020-06-03 15:05:07/*使用尾插法建立单链表,并返回指向单链表的头结点的指针*/ 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; }
-
头插法和尾插法建立单链表
2018-09-29 20:39:27/*头插法和尾插法建立单链表*/ #include <iostream> 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 -
要求采用尾插法建立单链表并输出链表
2021-01-13 17:17:24本题要求采用尾插法建立单链表并输出链表 #include<stdio.h> #include<stdlib.h> typedef int DataType; struct Node { DataType data; struct Node* next; }; typedef struct Node *PNode; typedef... -
尾插法建立单链表之后找输出单链表中间节点的元素值
2020-11-08 18:41:10#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... -
C++头插法尾插法建立单链表,合并两个有序单链表
2020-12-02 16:24:43A和B是两个单链表(带表头结点),其中元素递增有序。设计一个算法,将A和B归 并成一个按元素值非递减有序的链表 C,C由A 和B 中的结点组成。 #include<...尾插法建立单链表 */ void createlistR(LNode -
【01】分别使用头插法和尾插法建立单链表
2020-04-15 12:38:49分别使用头插法和尾插法建立单链表 头插法 #include <stdio.h> #include<stdlib.h> #include<iostream> #include<string> typedef int Status; typedef int ElemType; typedef struct Node{... -
【1】5. 头插法 尾插法 建立单链表代码分析
2020-07-27 19:51:36=> 分为 头插法 和 尾插法 步骤:(带头结点情况) 1. 初始化一个单链表 2. 每次取一个数据元素,插入到表尾/表头 ...尾插法建立单链表: 初始化单链表 设置变量 length 记录链表长度 ... -
用头插法和尾插法建立单链表(带头结点)
2020-09-25 19:20:41尾插法建立单链表 LinkList List_TailInsert(LinkList &L) { int x; L=(LinkList)malloc(sizeof(LNode)); LNode *s,*r=L;//s为要插入的新节点的指针,r为尾指针 scanf("%d",&x); while(x!=99)//当输入... -
数据结构(9)单链表基本操作(头插法建立单链表、尾插法建立单链表、查找结点值(按序号和值)、插入、...
2020-05-23 11:03:292、尾插法建立单链表 3、按序号查找结点值 4、按值查找表结点 5、插入结点操作 6、删除操作 7、求表长 本篇博客的结点数据结构如下: typedef struct LNode { ElemType data; struct LNode *next; }... -
java尾插法创建无头单链表_头插法与尾插法建立单链表
2021-03-13 07:56:04#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 头插法建立单链表 头插法建立... -
【数据结构】尾插法建立单链表 以及删除操作
2017-06-08 15:30:59#include #include struct ListNode { char data; struct ListNode* Next; };...//尾插法建立单链表 struct ListNode* CreateList() { char ch; struct ListNode* head,*r;//头指针,搜索指针; -
C++中LIstNode尾插法建立单链表
2020-06-03 19:36:02在做Acwing 和力扣的编程时,经常有一个节点是ListNode,由于自身比较菜的原因一致不知道怎么利用已有已知结构体根据输入利用尾插法创立单链表。 经过查阅资料,理解和最后实现如下: ListNode结构体的定义 struct ... -
用头插法和尾插法建立单链表
2020-09-21 19:23:57L){ //正向建立单链表 int x; L=(LinkList)malloc(sizeof(LNode)); //建立头结点 LNode *s,*r=L; //r为表尾指针 scanf("%d",&x); //输入结点的值 while(x!=9999){ //输入9999表示结束 s=... -
尾插法建立单链表 数据结构
2021-01-19 22:45:24尾插法建立链表 一、链表是什么? 链表是一种常见的基础数据结构,并且充分的利用到了结构体指针。可以将链表看成一种功能强大的数组,可以在节点中定义多种数据类型,可以随意添加、删除和插入节点。链表都有一个头... -
单链表的建立(C语言):头插法和尾插法建立单链表
2017-11-07 09:12:28采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示。 图2-4 头插法建立单链表 头插法...
收藏数
696
精华内容
278