#include <iostream>
#define OK 1
#define ERROR 0
#define VOERFLOE -2
using namespace std;typedef int Status;
typedef struct LNode
{int date;struct LNode *next;
} LNode,*LinkList;//构造一个空的单链表
Status InitList(LinkList &L)
{L=new LNode;L->next=NULL;return OK;
}
//创建单链表
void CreatList(LinkList &L,int n)
{L=new LNode;L->next=NULL;for(int i=0; i<n; i++){LinkList p;p=new LNode;cin>>p->date;p->next=L->next;L->next=p;}
}
//单链表取值
Status GetNumber(LinkList &L,int i,int &e)
{LinkList p;int j=1;p=L->next;while(p&&j<i){p=p->next;++j;}if(!p||j>i)return ERROR;e=p->date;return OK;
}
//单链表查找
LNode *LocateNumber(LinkList &L,int e)
{LinkList p;p=L->next;while(p&&p->date!=e){p=p->next;}return p;
}
//单链表插入
int ListInsert(LinkList &L,int i,int e)
{LinkList p;int j=0;p=L;while(p&&(j<i-1)){p=p->next;++j;}if(!p||j>i-1)return ERROR;LNode *s=new LNode;s->date=e;s->next=L->next;L->next=s;return OK;
}
//单链表删除
Status ListDelete(LinkList &L,int i)
{LinkList p,q;int j=0;p=L;while(p->next&&(j<i-1)){p=p->next;++j;}if((!p->next)||(j>i-1)) return ERROR;q=p->next;p->next=q->next;delete q;return OK;
}
void display(LinkList &L)
{LNode *p;p=L->next;while(p->next){cout<<p->date<<"->";p=p->next;}cout<<p->date;
}
void welcome()
{cout<<"1.初始化\n";cout<<"2.输入\n";cout<<"3.取值\n";cout<<"4.查找\n";cout<<"5.插入\n";cout<<"6.删除\n";cout<<"7.输出\n";cout<<"0.退出\n";cout<<endl;
}int main()
{LinkList L;welcome();bool a=true;while(a){int N;cout<<endl<< "请选择:";cin>>N;switch(N){case 1:{InitList(L);cout<<"成功构建一个空的单链表!";break;}case 2:{int n;cout<<"请输入单链表长度:";cin>>n;cout<<"请逆序输入单链表元素:";CreatList(L,n);cout<<"单链表创建成功!";break;}case 3:{int i,e;cout<<"请输入所取元素位置:";cin>>i;if(GetNumber(L,i,e)){cout<<"取值成功,值为:";cout<<e;}break;}case 4:{int e;cout<<"请输入所要查找的元素:";cin>>e;LocateNumber(L,e);cout<<"元素的位置是:"<<e;break;}case 5:{int i,e;cout<<"请输入位置i:";cin>>i;cout<<"请输入插入元素:";cin>>e;if(ListInsert(L,i,e)){cout<<"插入成功!";}break;}case 6:{int i;cout<<"请输入要删除的位置i:";cin>>i;if( ListDelete(L,i)){cout<<"删除成功!";}}case 7:{cout<<"链表元素为:";display(L);break;}case 0:{a=false;}}}return 0;
}

单链表基本操作在主函数中的实现相关推荐

  1. 顺序表基本操作在主函数中的实现

    #include<iostream> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define MAXSIZE 100 using ...

  2. 237删除链表中的节点(单链表基本操作)

    1.题目描述 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 说明: 链表至少包含两个节点. 链表中所有节点的值都是唯一的. 给定的节点为非末尾节点并且一定 ...

  3. C语言单链表基本操作总结

    C语言单链表基本操作     本文是参考他人实现的C语言单链表,对多篇博文整理的结果,仅作为学习笔记.文末有参考出处. 1.单链表定义 链表是通过一组任意的存储单元来存储线性表中的数据元素,这些存储单 ...

  4. 单链表基本操作的实现

    单链表基本操作的实现 [PS]: 由于笔者的能力水平有限,如果遇到相关错误或者存在歧义的地方,欢迎在下方评论区留言联系笔者,如果你觉得这篇文章对你有帮助,那么不妨动动你的小手点赞收藏转发,让更多的人看 ...

  5. 单链表基本操作(可执行程序),二级指针使用必要性的初步理解

    #include <stdio.h> #include <stdlib.h> #include<time.h> #define ERROR 0; #define O ...

  6. 【数据结构|链表】单链表基本操作

    文章目录 一.链表 二.链表分类 三.单链表基本操作   3.1 单链表存储结构Init   3.2 遍历链表visitlist函数   3.3 求表长length   3.4 查找listfind ...

  7. C 语言单链表基本操作

    复习下数据结构,使用 C 语言实现了带头节点的单链表.单链表基本操作有:节点初始化.链表初始化.插入节点.查找节点.删除节点和删除链表等.下面的程序中,list.h 为头文件, 其中包含了上述基本操作 ...

  8. 7-4 单链表基本操作

    7-4 单链表基本操作 请编写程序实现单链表插入.删除结点等基本算法.给定一个单链表和一系列插入.删除结点的操作序列,输出实施上述操作后的链表.单链表数据域值为整数. 输入格式: 输入第1行为1个正整 ...

  9. C语言编程>第十一周 ⑥ 某学生的记录由学号、5门课程成绩和平均分组成,学号和5门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分,并放在记录的ave成员中。

    例题:某学生的记录由学号.5门课程成绩和平均分组成,学号和5门课程的成绩已在主函数中给出.请编写函数fun,它的功能是:求出该学生的平均分,并放在记录的ave成员中.请自己定义正确的形参.. 例如,若 ...

最新文章

  1. IPV6的设置问题!
  2. 快捷指令_苹果怎么关闭快捷指令通知提醒 取消ios14快捷指令设置方法
  3. EasyTable.js,令html的table布局变得非常简单!
  4. [crypto]-02-非对称加解密RSA原理概念详解
  5. 资深Android开发带你入门Framework,架构师必备技能
  6. 初探webpack之从零搭建Vue开发环境
  7. C语言程序设计练习题解
  8. Spring学习总结(2)- AOP
  9. 挪车让路,没有留下电话怎么办?
  10. linuxshell如何实现进度条效果
  11. Ubuntu搭建饥荒(Don't Starve Together)游戏服务器
  12. 安装JDK报错“当前页面的脚本发生错误”解决方案
  13. 机器学习-线性回归-身高体重关系预测
  14. HTML中nbsp; ensp; emsp; thinsp; zwnj; zwj;等6种空白空格的区别
  15. ML笔记1——什么是ML;回归LossFunction(LF)推导;LF与凸函数关系;梯度下降推导;范数与正则化。
  16. 简报 | 菲律宾中央银行已经将数十家数字货币交易所合法化
  17. 手游平台哪些比较好?
  18. 名悦集团介绍真正懂车的人不买白色的原因
  19. AviConverter v4.0是一款非常棒的Avi视频转换工具
  20. 车牌识别系统不能连接服务器,车牌识别系统图像无法正常输出的原因与解决方法...

热门文章

  1. Android程序设计基础-设计布局之伪今日头条主界面
  2. word List 10
  3. C - Maximize GCD(简单数论)
  4. 欧拉函数的性质及其证明
  5. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环
  6. 【CTSC2010】珠宝商【后缀自动机】【点分治】【根号分治】
  7. 【NOI2019】弹跳【二维线段树】【dijkstra】
  8. C - Cats Gym - 102875C
  9. 牛客题霸 [栈和排序] C++题解/答案
  10. P7520-[省选联考 2021 A 卷]支配