[数据结构】【c语言】链表的创建和遍历

第一次写代码的博客,一个刚刚接触的新手,来这里主要是为了记录自己,方便自己以后浏览,也欢迎大家指正。先来个简单的,动态链表的创建和遍历。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
//定义链表的节点
typedef struct LNode
{
    int data;
    struct LNode *next;
} *LinkList;
//创建链表函数
LinkList CreateList()
{
    LinkList LTail, LHead, p;
    int i, length,input;
    LHead = (LinkList)malloc(sizeof(LNode));                          //创建一个表头节点
    if (!LHead) exit(0);                                              //判断表头是否创建成功
    LTail = LHead;                                                   //定义一个表尾
    LTail->next = NULL;                                              //表尾的指针赋予NULL
    printf("请输入你需要的节点数:\n");
    scanf_s("%d", &length);
    for (i = 0; i < length; i++)
    {
        printf("请输入第%d个节点的数据", i + 1);
        scanf_s("%d", &input);
        p = (LinkList)malloc(sizeof(LNode));                         //创建一个新的节点
        if (!p) exit(0);
        p->data = input;                                            //将输入的input的值赋给新的节点
        p->next = NULL;                                             //因为新的节点将要作为链表的表尾,所以将其指针赋予NULL.
        LTail->next = p;                                            //将表尾与新的节点连接起来
        LTail = p;                                                  //将新的节点赋给LTail,成为新的表尾
    }
    return LHead;                                                   //返回表头
}
//遍历链表函数
void TravelList(LinkList Head)
{
    LinkList p = Head->next;                                       //从链表头节点的下一个节点开始遍历
    while (p != NULL)                                              //当链表为空时,停止遍历
    {
        printf("%d\t", p->data);
        p = p->next;                                              //向后移动一个节点
    }
}
int main()
{
    LinkList head;
    head = CreateList();
    TravelList(head);
    return 0;
}
时间: 2024-11-09 00:08:25

[数据结构】【c语言】链表的创建和遍历的相关文章

【计蒜课】【数据结构】【链表的创建、插入、遍历操作的复习】

#include <stdio.h>#include <stdlib.h> typedef struct Node{ int data; struct Node *next; }Node, *LinkedList; LinkedList insert(LinkedList head, Node *node, int index) { if (head == NULL) { if (index != 0) { printf("failed\n"); return

链表的创建和遍历

1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <malloc.h> 4 #include <stdbool.h> 5 6 typedef struct Node{ 7 int data; //数据域 8 struct Node * pNext; //指针域 9 }NODE, * PNODE; //NODE等价于struct Node, * PNODE等价于struct Node * 10 11 P

C语言链表总结(创建,排序,增加,删除)

#include <stdio.h>#include <stdlib.h> typedef struct NODE{ int data ; struct NODE * pNext ;} * PNODE , NODE ; PNODE create_list(void) ;void traverse_list(PNODE phead);int length_list(PNODE pHead) ;void sort_list(PNODE pHead);bool insert_list(P

链表的创建,遍历,清除

node *creatline(int n) { node *head=(node *)malloc(sizeof(node)); head->data=rand()%100; head->next=NULL; node *p=head; int i=0; while (i<n-1) { p->next=(node *)malloc(sizeof(node)); p->next->data=rand()%100; p->next->next=NULL; p=

单链表的创建与遍历

#include "stdafx.h" #include <malloc.h> typedef struct NODE { int data; struct NODE* pNext; }NODE,*PNODE; PNODE Create_list(void); void Traversal_list(PNODE pHead); int _tmain(int argc, _TCHAR* argv[]) { PNODE pHead = NULL; pHead = Create_

单链表中创建与遍历

import java.util.Stack; public class Reverse{ class LNode{ int data; LNode next; public LNode(int data){ this.data=data; } } public static void main(String []args){ Reverse r = new Reverse(); for(int i=1;i<=10;i++){ r.add(i); } r.print(r.head); } pub

「C语言」单链表/双向链表的建立/遍历/插入/删除

最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合,一种面向过程的MVC的感觉. 而这一切的基础就在于对链表的创建.删除.输出.写入文件.从文件读出...... 本篇文章在于巩固链表的基础知识(整理自<C语言程序设计教程--人民邮电出版社>第十章),只对链表的概念及增删改查作出探讨,欢迎指教. 一.链表结构和静态/动态链表 二.单链表的建立与遍历

数据结构线性表链表的C语言实现

                                                                                      数据结构线性表链表的C语言实现      说明:线性表是一种最简单的线性结构,也是最基本的一种线性结构,所以它不仅是学习中的重点,也是应用开发非常常用的一种数据结构.它可以分为顺序表和链表.它的主要操作是数据元素的插入,删除,以及排序等.接下来,本篇文章将对线性表链表的基本操作和运用进行详细的说明(包含在源代码的注释中),并给

[数据结构]二叉树创建与遍历

实验报告:二叉树创建与遍历 一.问题描述 二叉树是一种实用范围很广的非线性结构,一棵非空二叉树有也只有一个根结点,每个结点最多有两个子树,我们称为左子树与右子树,当一个结点的左.右子树都是空的时,沃恩称此结点为叶子结点. 二叉树有一些很好的性质,这里不再赘述.考虑如何存储一棵树,本实验选择使用链式存储结构——二叉链表:如果事先知道需要存储的二叉树是满二叉树或者完全二叉树,则可以考虑使用顺序存储,否则将浪费大量的存储空间. 对于一棵既成的二叉树,有三种遍历方式——先序.中序与后序.可以证明,一棵形