线性表的基本操作及应用(单链表的创建、插入、删除、查找、显示)
1.实现单链表的创建;2.实现单链表的插入;3.实现单链表的删除;4.实现单链表的查找;5。实现单链表的显示
#include <stdio.h>
#include <stdlib.h>#define OK 1
#define ERROR 0typedef int Status;
typedef float ElemType;//线性表的单链表存储结构
typedef struct LNode{ElemType data;struct LNode *next;
}LNode,*LinkList;//单链表的创建
Status CreatList_L(LinkList &L,int n)
{//逆序输入n个元素的值LNode *p;int i;L=(LinkList) malloc(sizeof(LNode));L->next=NULL;for(i=n;i>0;--i){p=(LinkList)malloc(sizeof(LNode));scanf("%f",&p->data);p->next =L->next;L->next=p;} } //单链表的插入
Status ListInsert_L(LinkList &L,int i,ElemType e)
{LNode *p,*s;int j;p=L;j=0;while(p&&j<i-1){p=p->next;++j;}if(!p||j<i-1)return ERROR;s=(LinkList)malloc(sizeof(LNode));s->data =e;s->next=p->next;p->next=s;return OK;} //单链表的删除
Status ListDelet_L(LinkList &L,int i,ElemType &e)
{LNode *p,*q;int j;p=L;j=0;while (p->next&&j<i-1){p=p->next;++j;} if(!p||j>i-1)return ERROR;q=p->next;p->next=q->next;e=q->data;free(q);return OK;}//单链表的查找
Status GetElem_L(LinkList L,int i,ElemType &e){LNode *p;int j;p=L;j=0;while(p&&j<i){p=p->next;++j;}if(!p||j>i)return ERROR;e=p->data ;return OK;} //单链表的显示
void ListPrint_L(LinkList L,int n)
{LNode *p;int i;p=L->next;for(i=0;i<=n;i++){printf("%f ",p->data);p=p->next;}} //单链表的显示
void ListPrint_L(LinkList L)
{LinkList p;p=L->next;while(p!=NULL){printf("%f ",p->data);p=p->next;}printf("\n");
}main()
{LinkList L;Status i,n,flag,k;ElemType e;printf("请输入数据个数:");scanf("%d",&n);printf("请逆序输入各数据:\n");CreatList_L(L,n);printf("功能:1.插入元素\n2.删除元素\n3.查找元素\n4.结束\n");for(k=0;;k++){printf("\n请进行功能的选择:"); scanf("%d",&flag);if(flag==1){printf("请输入插入元素位置及元素\n");scanf("%d %f",&i,&e);ListInsert_L(L,i,e);ListPrint_L(L);}if(flag==2){printf("请输入删除元素位置\n");scanf("%d",&i);ListDelet_L(L,i,e); printf("删除元素为:%f\n",e);ListPrint_L(L);}if(flag==3){printf("请输入查找元素位置\n");scanf("%d",&i); GetElem_L(L,i,e);printf("查找的值为:%f\n",e);}if(flag==4)break;}
return OK;
}
线性表的基本操作及应用(单链表的创建、插入、删除、查找、显示)相关推荐
- 单链表的创建、删除、反转、插入、排序操作
单链表的创建.删除.反转.插入.排序操作 文章目录 单链表的创建.删除.反转.插入.排序操作 1.1 链表引言 1.2 单链表节点的数据结构 1.3 创建链表 1.4 打印整个链表 1.5 链表插入数 ...
- 线性表文档之循环单链表
循环单链表 定义 概念 循环单链表是在单链表的基础上,将链表最后一个结点的 next 指针域指向了链表的第一个结点(如果单链表是带头结点的则最后一个结点的 next 指针域指向头结点:如果单链表是不带 ...
- 数据结构之线性表-链式存储之单链表(一)
本人文笔较差,语文从来不及格,基础不好,写此类文章仅供自己学习,理解队列及其他知识,高手大神请略过.参考书籍 <数据结构与算法分析-Java语言描述> 1.1 单链表简介 线性表的最大的缺 ...
- 线性表的链式实现(单链表)
单链表的定义 为了表示每个数据元素与其直接后续元素之间的逻辑关系,每个元素除了存储本身的信息外,还需要存储指示其直接后续的信息,即每个结点存放本身的数据元素和下一个元素的地址.n个结点连接成一个链式线 ...
- 线性表的链式存储-单链表
单链表操作 [x] 单链表的创建(尾插法.头插法) [x] 单链表的查找操作 [x] 单链表的删除操作 [x] 单链表的逆置操作(使用头插法) [x] 单链表表长的计算 [x] 打印单链表 单链表的创 ...
- 使用OC实现单链表:创建、删除、插入、查询、遍历、反转、合并、判断相交、求成环入口...
一.概念 链表和数组都是一种线性结构,数组有序存储的,链表是无序存储的. 数组中的每一个元素地址是递增或者递减的关系,链表的每一个节点的地址没有此规律,它们是通过指针的指向连接起来. 链表种类:单链表 ...
- 线性表的链式表示——单链表
单链表 定义 线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素.每个链表的结点,除存放元素自身的信息之外,还需要存放一个指向其后继结点的指针.即单链表的结构分为两部分, ...
- 【数据结构】线性表的链式存储-单链表
单链表的定义 线性表的链式存储又称为单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素. 为了建立起数据元素之间的线性关系,对每个链表结点,除了存放元素自身的信息之外,还需要存放一个指向其后 ...
- (王道408考研数据结构)第二章线性表-第三节1:单链表的定义及其操作(插入和删除,建立之尾插和头插)
文章目录 一:单链表相关 (1)单链表的定义 (2)头指针与头结点 二:单链表代码描述 三:单链表的初始化 四:单链表的插入 五:单链表的删除 六:单链表查找 (1)按位查找 (2)按值查找 七:单链 ...
- 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)
目录 一.单链表 1.存储方式 2.插入 3.删除 总代码: 二.静态链表 1.存储方式 2.插入 3.删除 4.遍历 总代码: 三.循环链表 总代码: 四.双向循环链表 1.存储方式: 2.插入和删 ...
最新文章
- server缺少sqlexpress sql_SQL Server----解决SQL Server 配置管理器不见了
- struts2+jquery+ajax实现上传校验实例
- 【PP】SAP库存决定
- ThreadLocal封装SimpleDateFormat
- 牛客网_PAT乙级_1018人口普查(20)
- [剑指offer][JAVA]面试题第[32-1]题[从上到下打印二叉树][BFS]
- Bootstrap创建按钮工具栏
- j计算机一级考试题,2017全国计算机一级考试试题与答案
- 【Maven实战】依赖的聚合和版本管理
- 那些年的UC人力外包扯淡
- 【Anaconda】Anaconda 环境操作(新建/激活/退出/删除/克隆/重命名)
- 生命在此定格 路透记者遇难前拍下的最后画面
- 【C#】使用OWIN创建Web API
- 服务器ipsan虚拟化,挂载IPSAN存储+链接克隆模板(修正版)
- wiki(维基)系统
- cocos creator之自定义事件
- HCIP-Routing Switching V2.5考试大纲
- Millet谷仓:人人受益的电商
- 店铺logo设计免费在线生成
- MySQL之INTERVAL()函数用法