美文网首页
2020-08-20[打印单链表中间位置元素的值]

2020-08-20[打印单链表中间位置元素的值]

作者: 金珉锡_4bc1 | 来源:发表于2020-08-20 20:13 被阅读0次
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

/**
    打印单链表中间位置元素的值
    */ 

typedef struct Node
{
    int data;
    struct Node* Next;
} Node;
typedef struct Node* LinkList;

// 创建一个长度为n的链表 
void createLinkList(LinkList *L, int n)
{
    srand(time(0)); 
    
    *L = (LinkList)malloc(sizeof(Node));
    LinkList p = *L;
    
    for(int i = 0; i < n; i++){
        LinkList q = (LinkList)malloc(sizeof(Node));
        q->data = rand() % 100 + 1;
        p->Next = q;
        p = q;
    }
    
    p->Next = NULL;
}

// 获取链表中间的元素 
void GetMidNode(LinkList L, int *D)
{
    LinkList search, mid;
    search = mid = L;
    
    while(search->Next != NULL){
        if(search->Next->Next != NULL){
            search = search->Next->Next;
            mid = mid->Next;            
        }
        else{
            search = search->Next;
        }
    }   
    
    *D = mid->data;
}

void PrintLinkList(LinkList L)
{
    LinkList p = L->Next;
    while(p->Next != NULL){
        printf("%d ", p->data);
        p = p->Next;
    }
    printf("\n");
}

int main(int argc, char *argv[])
{
    LinkList l;
    int Data;
    
    createLinkList(&l, 20);     
    
    PrintLinkList(l);   
    
    GetMidNode(l, &Data);
    
    printf("链表中间的元素值为:%d\n", Data);
    
    return 0;
}

相关文章

  • 2020-08-20[打印单链表中间位置元素的值]

  • Convert Sorted List to Binary Se

    解决思路: 由于单链表是有序的,可以找到中间位置的元素,作为树的根节点,那么单链表的左半边就是左子树,右半边就是右...

  • 链表(上:链表反转)

    1. 逆序打印链表(单链表) 给定单链表,从尾到头打印每个节点的值,不同的值之间用空格隔开。比如:1>2>3>4>...

  • 数据结构(5)-线性表面试题

    准备工作 定义单链表结构,初始化单链表,通过数组生成单链表,打印链表元素。 正题 将2个递增的有序链表合并为⼀个有...

  • 2018-07-26

    合并有顺序的数组 打印两个有序链表的公共部分 在单链表和双链表中删除倒数第k个节点 单链表 双链表 删除链表的中间...

  • 《剑指offer》— JavaScript(3)从尾到头打印链表

    从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 实现代码 相关知识 链表是一种物理存储单...

  • OJ程序积木 Java

    1、单链表的结点: 2、栈 3、二叉树的结点 4、主动抛出异常 5、打印单链表 6、打印数组元素 7、先序遍历二叉...

  • 《剑指offer》逆转链表

    问题: 输入一个链表,从尾到头打印链表每个节点的值。 实现方式: 双向链表 单项链表通过交换元素进行反转链表(我的...

  • 2.单链表

    该部分包含以下内容-单链表的增删改查-计算链表长度-逆序链表-寻找(删除)链表倒数第K个元素-逆序打印链表(使用栈)

  • 关于链表的预备知识

    定义结点 创建链表结点 连接链表各结点 打印链表结点的值 打印整个链表中的值 删除整个链表 在链表尾部加入结点 特...

网友评论

      本文标题:2020-08-20[打印单链表中间位置元素的值]

      本文链接:https://www.haomeiwen.com/subject/klvejktx.html