单链表的初始化和创建(尾插法)

 1 #include<stdlib.h>
 2 #include<stdio.h>
 3 typedef struct Node
 4 {
 5     int data;
 6     struct Node *next;
 7 }Node,*LinkList;
 8
 9 void initList(LinkList *L)
10 {
11    (*L) = NULL;
12    printf("初始化成功\n");
13 }
14
15 LinkList creatList(int n)
16 {
17     LinkList l,h,s;//l为尾指针,h为头指针,s为工作指针
18     int i = 0;
19     if((h=(LinkList)malloc(sizeof(Node)))==NULL)
20     {
21         printf("不能分配空间!");
22         exit(0);
23     }
24     h->data = 0;
25     h->next = NULL;
26     l=h;
27     for(;i<n;i++)
28     {
29         if((s=(LinkList)malloc(sizeof(Node)))==NULL)
30         {
31             printf("不能分配空间!");
32             exit(0);
33         }//创建出节点
34         l->next = s;//与尾节点做链接
35         printf("请输入第%d个数字",i+1);
36         scanf("%d",&(s->data));//输入数据
37         s->next = NULL;//置空
38         l=s;//尾指针后移
39
40     }
41     return h;
42 }
43
44 int main()
45 {
46     LinkList listList = NULL;
47     initList(&listList);
48     listList = creatList(5);
49     return 0;
50 }

创建的时候,34-38行,链接,数据输入,置空,尾指针后移,顺序可变,后移一定要放在链接后面

单链表的初始化和创建(尾插法)

时间: 2024-09-29 18:28:37

单链表的初始化和创建(尾插法)的相关文章

单链表的初始化,建立,插入,查找,删除。

#include <stdio.h> #include <stdlib.h> typedef int ElemType; //定义结点类型 typedef struct Node { ElemType data;              //单链表中的数据域 struct Node *next;          //单链表的指针域 }Node,*LinkedList; //单链表的初始化 LinkedList LinkedListInit() { Node *L; L = (N

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

#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) #

java实现单链表的整表创建

package com.java.dataStruct; public class Node<E> { E item; Node next; public Node(){ } public Node(E element){ this.item = element; } public Node(E element, Node next){ this.item = element; this.next = next; } } Node p; Node L = new Node<String&

头插法和尾插法

. #include "stdio.h" #include "stdlib.h" typedef struct List { int data; //数据域 struct List *next; //指针域 } List; void TailCreatList(List *L) //尾插法建立链表 { List *s, *r;//s用来指向新生成的节点.r始终指向L的终端节点. r = L; //r指向了头节点,此时的头节点是终端节点. for (int i = 0

给定数组,创建(带头节点)的单链表(头插法、尾插法)

一般有两种常用的方法来建立单链表:头插法与尾插法. (1)头插法:每次将新申请的节点插在头节点的后面: 简单来说,就是把新加进的元素放在表头后的第一个位置: 首先,让新节点的next指向头节点之后:然后,让表头的next指向新节点. (2)尾插法:每次将新申请的节点插在终端节点的后面. #include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *next; } NODE; /

单链表:头插法和尾插法

头插法: linklist *CreateList_Front() { linklist *head, *p; char ch; head = NULL; printf("依次输入字符数据(‘#’表示输入结束):\n"); ch = getchar(); while(ch != '#') { p = (linklist*)malloc(sizeof(linklist)); p->data = ch; p->next = head; head = p; ch = getcha

单链表的头插法和尾插法c语言实现

/*单链表的头插法和尾插法c语言实现*/ #include <stdio.h>#include <stdlib.h>#include <string.h>#define SIZE 100/*简单的定义一个链表节点的数据单元*/typedef struct student_t{ int num; char name[SIZE]; struct student_t* pNext;}studentList, *pStudentList; /*定义一个全局的静态的链表头节点指针

C实现头插法和尾插法来构建单链表(不带头结点)

链表的构建事实上也就是不断插入节点的过程.而节点的插入能够分为头插法和尾插法. 头插法就是在头结点后插入该节点,始终把该节点作为第一个节点.尾插法就是在链表的最后一个节点处插入元素,作为最后一个节点.假设想要了解链表的概念和其它链表操作.请參考<数据结构与算法之链表><C语言实现链表的基本操作>两篇文章.演示样例代码上传至  https://github.com/chenyufeng1991/HeadInsertAndTailInsert . // // main.c // Hea

线性表的链式存储之单链表的尾插法

对单链表进行遍历.查找.插入.删除等操作,最终效果如下: 相关C代码如下: /*线性表的链式存储之单链表的尾插法*/ #include <stdio.h> #include <stdlib.h> #include <malloc.h> /*定义变量*/ typedef int DataType; typedef struct node{     //定义链表结点数据结构 DataType data; struct node * pNext; }NODE; typedef