单链表的基本操作代码

news/2024/8/19 14:44:44

#include<stdio.h>
#include<stdlib.h>

typedef int Status;//函数类型(当return值为函数结果状态时用)需要自定义! 
typedef int ElemType;//相当于给 int起个别名

typedef struct LinkList{
    ElemType data;
    struct LinkList *next;//存放元素后继结点的地址 
    ElemType len;
}LinkList;

//初始化链表
LinkList *IniList(){
    LinkList *L=(LinkList *)malloc(sizeof(LinkList));//创建头结点,令L指向头结点
    L->next=NULL;
    L->len=0;
    return L;
}

//判空函数
 int emply(LinkList *L){
     if(L->len==0){
         return 1;
     }
     else 
     return 0;
 }

//删除 
ElemType delate(LinkList *L,int i){
    if(emply(L)){
        return 0;
    }
    LinkList *p,*m;
    p=L;
    m=L->next;
    while(m!=NULL){
        if(m->data==i){
            p->next=m->next;
            L->len--; 
            return 0;
        }
        else
        {
            p=m;
            m=m->next;
        }
    }

//头插法 
void CreatList(LinkList *L,int n){ 
    LinkList *p;
    p=(LinkList *)malloc(sizeof(LinkList));
    p->data=n;
    p->next=L->next;
    L->next=p; 
    L->len++;
}
//尾插法 
void CreatList_L(LinkList *L,int n){
    LinkList *p;
    p=(LinkList *)malloc(sizeof(LinkList));
    LinkList *r;//标记作用
    r=L;
    r->next=p;
    r=r->next;
    r->next=NULL; 
    p->data=n;
    
}
//遍历链表
void show(LinkList *L){
    LinkList *p;
    p=L->next;
    while(p!=NULL){
        printf("%d,",p->data);
        p=p->next;
    }
    printf("\n"); 
    free(p);
}

//主函数,判断各种操作是否正确 
int main(){
   LinkList *L=IniList();
    printf("头插法创建一个链表\n");
    CreatList(L,5);
    CreatList(L,4);
     CreatList(L,3);
      CreatList(L,2);
    show(L);
    delate(L,3);
    show(L);
return 0;


http://lihuaxi.xjx100.cn/news/1776443.html

相关文章

故障诊断模型 | Maltab实现RF随机森林的故障诊断

效果一览 文章概述 故障诊断模型 | Maltab实现RF随机森林的故障诊断 模型描述 RF善于处理高维数据,特征遗失数据,和不平衡数据 (1)训练可以并行化,速度快 (2)对高维数据集的处理能力强,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降…

什么是 CASB,在网络安全中的作用

数字化转型正在稳步攀升&#xff0c;组织现在越来越关注在线生产力系统和协作平台&#xff0c;各行各业的企业都采用了不同的云基础设施服务模式。云基础架构提供按需服务&#xff0c;可提高易用性、访问控制、内容协作和减少内部存储资源&#xff0c;以及许多其他好处。迁移到…

【PHP常用函数封装】 php 判断a数组里是否完全包含b数组

思路&#xff1a;使用array_diff()函数来判断一个数组是否完全包含另一个数组。array_diff()函数用于计算两个或多个数组的差集。 函数isSubset 判断a数组里是否完全包含b数组 function isSubset($a, $b) {$diff array_diff($b, $a);if (empty($diff)) {return true; // b数组…

【启扬方案】启扬安卓屏一体机在医疗自助服务终端上的应用解决方案

为了解决传统医疗模式下的“看病难、看病慢”等问题&#xff0c;提高医疗品质、效率与效益&#xff0c;自助服务业务的推广成为智慧医疗领域实现信息化建设、高效运作的重要环节。 医疗自助服务终端是智慧医疗应用场景中最常见的智能设备之一&#xff0c;它通过与医院信息化系统…

使用 Qt 实现监听网页是否响应,导出 Excel 表

Qt 实现监听网页是否响应 要使用 Qt 实现监听网页是否响应&#xff0c;可以利用 QNetworkAccessManager 类来发送 HTTP 请求并处理响应。以下是一个示例代码&#xff1a; #include <QtNetwork>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 创…

01_ddim_inversion_CN

DDIM反转 设置 # !pip install -q transformers diffusers accelerateimport torch import requests import torch.nn as nn import torch.nn.functional as F from PIL import Image from io import BytesIO from tqdm.auto import tqdm from matplotlib import pyplot as p…

NI USRP软件无线设备的特点

NI USRP软件无线设备 NI的USRP(Universal Software Radio Peripheral)设备是RF应用中使用的软件无线(SDR)。NI的USRP收发器可以在多个频段发送和接收RF信号&#xff0c;因此可用于通信工程教育和研究。通过与LabVIEW开发环境相结合&#xff0c;USRP可以实现使用无线信号验证无…

CSS特效005:绘制一个环环相扣的五个环

css实战中&#xff0c;怎么制作这样的一个环环相扣的五个环呢&#xff1f; 绘制五个圈圈很容易&#xff0c;关键是要环环相扣&#xff0c;尤其要注意环环相交部分的处理。这里要用到transform-style: preserve-3d; 和 transform: rotateY( 1deg ) 等关键的css技术。 效果图 源…