#include<stdio.h>
#include<stdlib.h>#define OK  1
#define ERROR  -1
/*******************定义节点结构*****************/
typedef struct Point
{int   data;struct point * next;
}point,*ppoint;
/********************函数声明*********************/
listinsert(point *head);
outlist(point *head);
ListDelete (point *head);
listupdate (point *head);/*********************主函数**********************/main()
{point *head; int k;      //选择器  head=(point*)malloc(sizeof(point));head->next=NULL;do                                 {printf("        ╔-----------------------------------------------╗\n");                                  //显示一个简易菜单printf("        ┆        1      ---     插入(Insert)          ┆\n");printf("        ┆        2      ---     修改(Update)          ┆\n");printf("        ┆        3      ---     删除(Delete)          ┆\n");printf("        ┆        4      ---     显示( Show )          ┆\n");printf("        ┆        5      ---     退出( Exit )          ┆\n");printf("        ╚-----------------------------------------------╝\n"); printf("请输入所要进行的操作序号:  ");scanf("%d",&k);                                   //接受用户的选择switch(k)                                           //接受用户的函数    {case 1:listinsert(head);break;case 2:listupdate (head);break;case 3:ListDelete (head);break;case 4:outlist(head);break;case 5:break;default:printf("错误选择!请重选\n");break;}}while(k!=5);      //直到i被赋值为5return 0;
}/*******************************插**入**函**数***************************/listinsert(point *head){  // 在带头结点的单链线性表head的第i个元素之前插入元素eint i,e;ppoint p,s;int j = 0;printf("请输入要插入节点的位置:    ");scanf("%d",&i);p = head;  while (p && j < i-1){  // 寻找第i-1个结点p = p->next;++j;} if (!p || j > i-1) {printf("输入有误!!! 请重新输入!\n");return ERROR;}      // i小于1或者大于表长s = (ppoint)malloc(sizeof(point));  // 生成新结点printf("请输入要插入节点的 值 :    ");scanf("%d",&e);s->data = e;  s->next = p->next;      // 插入list中p->next = s;return OK;
} /*******************************删**除**函**数***************************/ListDelete (point *head){// 在带头结点的单链线性表L中,删除第i个元素,并由e返回其值point * p,*q;int i;int j = 0;p = head;
printf("请输入要删除节点的位置:   ");
scanf("%d",&i);while (p->next && j < i-1) {  // 寻找第i个结点,并令p指向其前趋p = p->next;++j;}if (!(p->next) || j > i-1) {printf("输入有误!!! 请重新输入!\n");return ERROR;}  // 删除位置不合理q = p->next;p->next = q->next;           // 删除并释放结点free(q);return OK;
} /*******************************修**改**函**数***************************/listupdate (point *head){// 在带头结点的单链线性表中,修改第i个元素,并由e返回其值point * p,*q;int i,ww,j = 0;p = head;
printf("请输入要修改节点的位置:   ");
scanf("%d",&i);while (p->next && j < i-1) {  // 寻找第i个结点,并令p指向其前趋p = p->next;++j;}if (!(p->next) || j > i-1) {printf("输入有误!!! 请重新输入!\n");return ERROR;}  // 修改位置不合理printf("请输入要修改后节点的值:   ");scanf("%d",&ww);p = p->next;p->data=ww;return OK;
}/*******************************显**示**函**数***************************/outlist(point *head)               // 带入头指针  打印链表
{ point *p;p=head->next; puts("链表如下:");if(p==NULL){printf("链表为空!\n");exit(0);}  //空表显示时执行printf("head");do{ printf(" -> %d",p->data);p=p->next;}while(p!=0);printf("\n\n");
}

关于c语言编写 单项链表 的创建、插入、修改、删除、显示、退出 的程序案例相关推荐

  1. R语言编写自定义函数、创建使用ggplot2生成图标(icon)的主题(theme)函数、使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标、ggsave保存图标(png、svg

    R语言编写自定义函数.创建使用ggplot2生成图标(icon)的主题(theme)函数.使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标.ggsave保存图标(png.svg ...

  2. c语言实现单链表的创建(完整版)

    使用c语言实现单链表是考研的重点.但是如何实现却是一个难点.下面是我写的一个简单的创建单链表的代码. #include<stdio.h> #include<stdlib.h> ...

  3. C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。

    LinkedList.cC exerciseCreated by y liu on 15/10/1.Copyright © 2015年 y liu. All rights reserved.//库&a ...

  4. DDL语言(库和表的创建、修改、删除)——MySQL

    文章目录 DDL语言 1. 库的管理 1. 库的创建 2. 库的修改 3. 库的删除 2. 表的管理 1.表的创建 ★ 2.表的修改 (对表内的列进行操作) ①修改列名 ②修改列的类型或约束 ③添加新 ...

  5. 数据结构与算法——链式存储(链表)的插入及删除

    持续分享嵌入式技术,操作系统,算法,c语言/python等,欢迎小友关注支持 上篇文章我们讲述了链表的基本概念及一些查找遍历的方法,本篇我们主要将一下链表的插入删除操作,以及采用堆栈方式如何创建链表. ...

  6. 数据库基础--数据库基础管理(创建库/表 以及插入修改删除表数据)

    1.啥子是数据库–存储数据的仓库 2.什么是数据–音乐,电影,文本,图片等 常见的数据库软件 Oracle 不开源 跨平台 厂商:甲骨文 MySQL 开源 跨平台 厂商:甲骨文 SQL Server ...

  7. 双链表的基本操作---插入,删除,交,并,相邻元素的交换,不相邻元素的交换...

    这个链表是带有表头的双链表.实现链表的一些规范操作,初始化,插入,删除等.包括两个头文件list.h,fatal.h,库函数list.c,测试函数testlist.c.头文件放的都是函数声明,库函数l ...

  8. 单链表的基本操作---插入,删除,交,并,相邻元素的交换等

    这个链表是带有表头的单链表.实现链表的一些规范操作,初始化,插入,删除等.包括两个头文件list.h,fatal.h,库函数list.c,测试函数testlist.c.头文件放的都是函数声明,库函数l ...

  9. c语言用链表对学生成绩排序,学生成绩排序和平均分计算利用c语言链表的创建插入删除.doc...

    #define NULL 0 #define LEN sizeof(struct student) struct student { long num; float score; struct stu ...

最新文章

  1. KeyError: “None of [Int64Index([...],\n dtype=‘int64‘, length=739)] are in the [columns]“
  2. 《数学之美》第16章 信息指纹及其应用
  3. javascript高级程序设计笔记
  4. ExtJs6 理解 -- Ext.data.proxy.Proxy
  5. python字典键值可以是元组或列表吗_Python列表、元组、字典、集合的内置使用方法...
  6. TensorFlow可以“预装”数据集了,新功能Datasets出炉
  7. 3.5 RNN 层使用方法
  8. PHP使用缓存生成静态页面
  9. Linux标准化:避免重蹈UNIX的覆辙
  10. 利用saopanel系统的UDP转发模式破解校园网
  11. java csv oracle数据库_从文件(*.csv或*.txt)导入Oracle数据库Java源代码
  12. 安全组-出入战规则设置
  13. 《大掌门》欧阳刘彬:基于Cocos2d-x引擎开发经验分享
  14. 中水是什么?有什么用途呢?
  15. 性能测试之jmeter(下载安装)
  16. 梆梆加固的病毒分析-破解篇
  17. 提取音乐用什么软件哪个好
  18. maven命令的方式
  19. 《解析深度学习》部分笔记
  20. 原华为区块链科学家黄连金先生受邀担任Hashgard基金会战略顾问

热门文章

  1. 诗和远方:无题(四十六)
  2. 诗与远方:无题(三十七)- 凿壁偷光
  3. Struts2的标签概述
  4. spring自动装配、注解
  5. POI导入导出Excel(HSSF格式,User Model方式)
  6. 开发不能上外网怎么查资料_中考生不能复读,近一半上不了高中,怎么办?
  7. mysql统计姓名为小明_Mysql 统计查询相同字段只统计一条
  8. enum should not be used as an identifier since it is a reserved keyword from source level 1.5 on
  9. ARM linux的启动部分源代码简略分析【转】
  10. Linux-DNS服务器(2):BIND区域传送