链表练习代码

2023-05-16

#include<stdio.h>
#include<stdlib.h>
typedef int element;
typedef int Status;
#define OK 1
#define ERROR 0

typedef struct LinkNode
{
    element data;
    struct LinkNode *next;
}LinkNode,*LinkedList;

Status init(LinkedList &list)      //初始化带头结点的单链表
{
    list=(LinkedList)malloc(sizeof(LinkNode));
    if(list==NULL) return ERROR;
    list->next=NULL;
    return OK;
}

Status add(LinkedList &list,element e)
{
    LinkedList p,q;
    if(list==NULL) return ERROR;
    p=list;
    // while(p->next!=NULL) p=p->next;
    q=(LinkedList)malloc(sizeof(LinkNode));
    if(q==NULL) return ERROR;
    q->data=e;
    q->next=p->next;
    p->next=q;
    return OK;int i=1;
}

int locate(LinkedList list,element e)
{
    int i=1;
    LinkedList p;
    if(list==NULL) return ERROR;
    p=list->next;
    while(p->data!=e && p->next!=NULL) { p=p->next; i++; }
    if(p->next==NULL) return ERROR;
    return i;
}

LinkedList findPreElement(LinkedList list,element e)
{
    LinkedList p;
    if(list==NULL) return NULL;
    p=list;
    while(p->next!=NULL && p->next->data!=e) p=p->next;
    if(p->next==NULL) return NULL;
    return p;
}

Status deleteElement(LinkedList &list,element e)
{
    int i=1;
    LinkedList p,q;
    if(list==NULL) return ERROR;
    p=list->next;
    p=findPreElement(list,e);
    if(p==NULL) return ERROR;
    q=p->next;
    p->next=q->next;
    free(q);
    return OK;
}

element getElement(LinkedList list,int locate)
{
    int i=1;
    LinkedList p;
    if(list==NULL) return ERROR;
    p=list->next;
    while(p!=NULL && i!=locate) { p=p->next; i++; }
    if(p==NULL) return ERROR;
    return p->data;
}

Status insert(LinkedList &list,element e,int locate)
{
    int i=1;
    LinkedList p,q;
    if(list==NULL) return ERROR;
    p=list;
    while(p!=NULL && i!=locate) { p=p->next; i++; }
    if(p!=NULL)
    {
        q=(LinkedList)malloc(sizeof(LinkNode));
        q->data=e;
        q->next=p->next;
        p->next=q;
    }
    else return ERROR;
    return OK;
}

void print(LinkedList list)
{
    LinkedList p;
    if(list==NULL) return;
    p=list->next;
    while(p!=NULL) { printf("%d ",p->data); p=p->next; }
    printf("\n");
}

int main()
{
    int i,e;
    LinkedList list;
    if(init(list)==ERROR) { printf("初始化错误!!!\n"); return 0; }
    for(i=1;i<=10;i++) add(list,i);
    printf("原始链表:"); print(list);
    printf("请选择要取出元素的位置"); scanf("%d",&i); printf("%d\n",getElement(list,i));
    printf("请选择要定位的元素:"); scanf("%d",&i); i=locate(list,i); if(i==ERROR) printf("查无此元素\n"); else printf("%d\n",i);
    printf("请选择在哪里插入哪个元素:"); scanf("%d%d",&i,&e); insert(list,e,i);
    printf("插入后的链表如下"); print(list);
    printf("请选择要删除的元素"); scanf("%d",&e); i=deleteElement(list,e);
    if(i==ERROR) printf("删除失败!!!\n");
    else { printf("删除后的链表如下:"); print(list); }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

链表练习代码 的相关文章

  • Cygwin获取root权限

    1 找到cygwin 的etc目录中有一个名为passwd的文件 2 用写字板打开passwd 这个文件 xff0c 找到以下部分 xff0c 把其中的windows用户名换成root xff08 共3处都改过来 xff09 Adminis
  • Linux Shell 只列出目录的方法

    在实际应用中 xff0c 我们有时需要仅列出目录 xff0c 下面是 4 种不同的方法 1 利用 ls 命令的 d 选项 xff1a ls d Desktop pic shell src 2 利用 ls 命令的 F 选项 xff1a ls
  • 容器00-使用docker安装运行httpd

    ubuntu 16 04安装docker span class hljs comment apt get install docker io span ubuntu启动docker服务 span class hljs comment ser
  • 关于Tkinter使用多进程后打包成exe弹出多个相同窗口的解决方案

    关于Tkinter使用多进程后打包成exe弹出多个相同窗口的解决方案 在编写线路切换程序时 xff0c 由于需要登录不同的网络设备上 xff0c 所以必须使用多进程而不能使用多线程 xff0c 但是在打包成exe后运行发现使用几个进程就弹出
  • JSON处理的Java API(JSR-353)–流API

    Java很快将具有一组标准的API xff0c 作为Java EE 7的一部分处理JSON 此标准定义为JSR 353 JSON处理的Java API xff08 JSON P xff09 xff0c 目前正在最终批准投票中 JSON P提
  • 以梦为码,最燃的华为开发者大会2020(Cloud)有这些看点

    Write the Code xff0c Change the World 以梦为码 xff0c 这的确是开发者最好的时代 在全球ICT产业遇上几十年未有之大变局之际 xff0c 开发者的重要性与价值毋庸置疑 正如华为公司高级副总裁 Clo
  • Hisat2 比对到参考基因组

    比对的流程 xff1a 建立索引 比对到参考基因组 SAM转BAM文件 BAM建立索引 1 准备参考基因组 建立索引 参考基因组准备 注意参考基因组版本信息 下载 xff0c Ensembl xff1a http asia ensembl
  • oh-my-posh安装过程问题及注意事项

    在通过官方的安装命令后在个人用户的环境变量中有oh my posh的环境变量 但即使已经装配了环境变量 xff0c 在powershell中输入oh my posh依然会出现未识别问题 这个问题的解决方法是 通过管理员模式进入 然后就会发现
  • 阿里巴巴2014校招笔试题-2013年9月14日

    不得不吐槽 xff0c 阿里真是太混乱了 xff0c 北京的笔试在考场等了两个半小时 xff0c 考卷都没运到考场 xff0c 64 阿里巴巴集团校园招聘 回应说 xff1a 北京的同学们 xff0c 简单解释下 xff0c 为了试卷的保密
  • Android 如何通过拨号盘暗码启动你的应用

    原文地址 xff1a https blog csdn net zhenbohuang article details 76138790 手机上通常都有一些暗码来启动一些隐藏的功能 最常见的就是在拨号盘输入 06 来查看imei号 那么自己开
  • 简单说说容器/沙盒(Sandbox)以及Linux seccomp

    如果应用程序逻辑有误 xff0c 会造成操作系统崩溃 这句话其实不对 如果一个应用程序都能让一个操作系统崩溃了 xff0c 那这一定是这个系统在设计上或者实现上的BUG xff01 再次重申 xff0c 我不知道谭浩强的C语言教材现在是怎么
  • Ubuntu下Pycharm安装破解

    在安装pycharm之前需要先安装jdk8以上的版本 安装pycharm的JDK环境 Pycharm需要JDK环境解析 xff0c 否则在安装过程中报错 依次执行一下几条command sudo add apt repository ppa
  • 二分法查找某个数的位置(Java实现)

    public class BinaryFind public static void main String args int a 61 new int 1000000 省去排序的步奏 for int i 61 0 i lt a lengt
  • 好东西一定是时间沉淀的产物!!!

    做事情 xff0c 不要期待一蹴而成 xff0c 因为好东西一定是时间沉淀的产物 xff01 xff01 xff01 总结 xff1a 细水长流
  • Tomcat无法正常工作

    场景一 xff1a 曾经下载过Tomcat xff0c 直接删除目录后又安装 出错原因 xff1a 只删除了Tomcat的相关目录 xff0c 但注册表没有删除 解决方案 xff1a 找到你重下的Tomcat xff0c 点击运行卸载文件
  • JSP内置对象错误Access restriction

    错误内容 xff1a Multiple annotations found at this line Access restriction The method 39 ServletRequest getParameter String 3
  • 搭建Android开发平台(Android studio)

    引论 开发任何软件都需要有一款顺手的开发工具 xff0c 就像是剑客应该有一把属于自己的宝剑 xff08 独孤求败级别的除外 xff09 xff0c 开发Android APP更是如此 在这里我们选择的开发工具是android studio
  • gcc编译运行c文件

    1 新建 c文件 xff08 如A c xff09 2 在当前目录下打开终端 3 输入指令 xff1a gcc c 文件名 c gcc 文件名 o o 文件名 文件名
  • ssh用户和密码远程登录命令

    ssh user 64 url p passwd

随机推荐

  • http工作原理

    1 域名服务器将域名转换为IP地址 xff0c http根据IP地址连接到服务器 2 发送请求 xff08 post或get xff09 3 服务器进行响应 xff0c 返回被请求的资源 4 浏览器接收文件解释并最终呈现给用户
  • Android老师作业2

    因为我没有保存 xff0c 所以没有老师发的图片 xff0c 不过考虑到这个项目考察的是UI布局和国际化 xff0c 图片的作用只是为了美观 xff0c 所以我决定只实现布局和国际化就好了 从截图上看 xff0c 最好的布局应该是用网格 x
  • TCP会话开始与结束

    会话开始 xff1a 客户端向服务器发送SYN消息 服务器接收SYN消息并发送SYN ack消息 客户端接收SYN ack并发送ack消息 服务器接收ack xff0c 连接建立会话开始 会话结束 xff1a 客户端向服务器发送fin消息
  • android启动的四种模式

    standard xff1a 顾名思义 xff0c 标准的启动模式 xff0c 也即默认的启动模式 他会创建 一个任务栈将打开的所有activity都放入 退出时按后进先出的原则依次将activity退出 这种启动模式看似没有问题 xff0
  • android老师布置的作业四

    都看过题 xff0c 题目不描述 首先 xff0c 我们需要制作静态界面然后才能将各个界面集成到一起 主界面设计分析 使用布局方式 xff1a absolute xff0c 优点是随便拖动 xff0c 缺点是只适用于一种手机屏幕 xff0c
  • android老师作业五

    UI布局以前做过 xff0c 不提了 其他的问题主要是安装1个4 0的模拟器 xff0c 不然由于安全性问题无法运转 文件存储用SharedPreferences这个工具类 xff0c 其他的关于这个项目的一切全在代码中吧 代码 xff1a
  • poj1287解题报告

    对于学过图和Prim算法的人来说 xff0c 此题是一道不折不扣的水题 xff0c 尤其是输入范围限定在了50之内 xff0c 所以即便我用了O xff08 n 3 xff09 的算法也只用了16MS就AC了 前期建图 xff0c 我用的是
  • zoj3961解题报告

    借今年浙江省赛的题练练手 首先 xff0c 由题意知 xff0c A与B发信息 xff0c 当A与B连续互相发信息m天时 xff0c 好感度point 43 1 输入有A向B发信息的天数与B向A发信息的起止天数 xff0c 具体格式看题 n
  • poj3617解题报告

    题意 xff1a 输入一个整数n xff0c 后面跟着n行大写字母 xff0c 现要求对这些字母进行排序 xff0c 要求字典序最小 xff0c 每80个字母一行且字母只能从两端任取一个 根据上面的信息我们不难想到若使字典序最小则只需从两端
  • Android老师作业六

    关于这次的Android作业 xff0c 我整理了以下几个要点 第一个是UI设计 xff0c 因为做APP第一步就是他 xff0c 避是避不掉的 UI一定要注意主界面分为两部分 xff0c 上部分是方便插入的静态页面 xff0c 下面是个l
  • 架构组件 ---- ViewBinding 视图绑定 入门

    翻译自android官网 xff0c 可直接去官网观看 架构组件 ViewBinding 视图绑定 入门 设置说明用法在 Activity 中使用视图绑定在 Fragment 中使用视图绑定 与 findViewById 的区别与数据绑定的
  • <操作系统>读者写者问题(读者优先)C语言实现

    问题描述 代码 span class token macro property span class token directive keyword include span span class token string lt stdio
  • poj1163解题报告

    经典的动态规划 xff0c 分析省略不懂的完全可以百度 数字三角形 xff0c 仅给出AC代码Memory 260k time 32ms include lt cstdio gt include lt cstring gt include
  • UVA10881解题报告

    还是那句话 xff0c 解题先看题 由题意知有一根长度为L的木棒 xff0c 木棒上面有n只蚂蚁 xff0c 每只蚂蚁或朝左或朝右且以每秒1cm的速度移动 xff0c 吗 xff0c 蚂蚁相撞后掉头 xff0c 问T秒后每只蚂蚁的状态 xf
  • 如何对负数取模

    问 xff1a 给定一个数x xff0c x可以为整数也可以为负数 xff0c 如何对x取模 xff0c 模为Mod 答 xff1a x 61 x Mod 43 Mod Mod 具体应用 HDU 6185 分析 xff1a 此题是递推 43
  • 前缀和及其性质讲解

    背景 前缀和作为一个可以维护区间信息且易于实现的数据结构 xff0c 深受算法竞赛青睐 xff0c 我曾在多场比赛中遇到过前缀和的问题 xff0c 因此我觉得有必要好好地整理一下关于前缀和的知识点 一方面利于自己查漏补缺 xff0c 另一方
  • 经典贪心算法模型

    例题一 题目链接 xff1a https ac nowcoder com acm contest 558 C 题意 xff1a 给定N个二元组 a1 b1 a2 b2 aN bN xff0c 请你从中选出恰好K个 xff0c 使得ai的最小
  • 2011 Asia - Dhaka Candles题解

    题目来源 xff1a 2011 Asia Dhaka 题目链接 xff1a UVALive 5810 UVA12368 分析 xff1a 二进制枚举 xff0c 难点在于check函数 xff0c 由于所给的时间很短 xff0c 所以我们必
  • Python开发环境构建

    一 下载Python安装包 登录Python官网 xff08 https www python org xff09 找到Download xff0c 将鼠标移动到该位置会出现一个列表 xff0c 下载电脑对应系统的Python xff0c
  • 链表练习代码

    include lt stdio h gt include lt stdlib h gt typedef int element typedef int Status define OK 1 define ERROR 0 typedef s