#include "iostream.h"
#include "stdlib.h"
#include "math.h"
#define ElemType int
#define OK 1
#define ERROR 0
#define N 6
typedef struct LNode
{
ElemType data;
struct LNode *next;
int length;
}LNode,*LinkList;
LNode *creat_L();
void out_L(LNode *L);
void insert_L(LNode *L,int i ,ElemType e);
ElemType delete_L(LNode *L,int i);
int locat_L(LNode *L,ElemType e);
int InitList_Sq(LinkList &L)
{
L=(LNode*)malloc(sizeof(LNode));
L->next=NULL;
return OK;
}//初始化
int ListInsert_L(LinkList &L,int i,ElemType &e)
{
LNode *s,*p;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;
}//输入
int ListDelete_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->next)||j>i-1) return ERROR;
q=p->next;p->next=q->next;
e=q->data;free(q);
return OK;
}//删除
int GetElem_L(LinkList L,int i,ElemType &e)
{
LNode *p; int j;
p=L->next;
j=1;
while(p&&j<i){p=p->next;++j;}
if(!p||j>i) return ERROR;
e=p->data;
return OK;
}//取表中第i个元素
int length_L(LinkList &L ,int i)
{ LinkList p;
i=0;
p=L->next;
while(p)
{i++;p=p->next;}
return i;
}//求表长
int ListElem_L(LinkList L,ElemType e)
{ int i;
i=L[0].data;
while(i&&L[i].data!=e)i=L[i].data;
return i;
}
void print_L(LinkList L)
{
LNode *p;
p=L->next;
cout<<endl;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}
} //显示
void main()
{
int i; ElemType e;
LinkList L;
InitList_Sq(L);
cout<<"1.建立单链表L"<<endl;
cout<<"2.插入元素e"<<endl;
cout<<"3.删除表中第i个元素"<<endl;
cout<<"4.取表中第i个元素"<<endl;
cout<<"5.退出"<<endl;
cout<<"按数字键选择: "<<endl;
int s;
cin>>s;
while(s!=4)
{
switch(s)
{
case 1:
cout<<"输入几个元素组成单链表L"<<endl;
for(i=1;i<=N;i++)
{
cin>>e;ListInsert_L(L,i,e);
}
print_L(L);
cout<<endl;
//break;
case 2:
cout<<"向表中插入元素: "<<endl;
cin>>s;
cout<<endl;
ListInsert_L(L,i,s);
cout<<"插入后的单链表为: "<<endl;
print_L(L);
cout<<endl; //break;
case 3:
cout<<"输入要删除的元素:"<<endl;
int s;
cin>>s;
i=0;
while(i<N)
{
if(L->data==s)
{
ListDelete_L(L,i+1,e);
cout<<"删除的元素存在 :e="<<e<<endl;break;
}
i++;
}
if(i>=N) cout<<"要删除的元素不存在";
else
{
cout<<"删除后的单链表为: "<<endl;
print_L(L);
}
cout<<endl;return;
//break;
case 4:
cout<<"从表中查找元素: <<"<<endl;
cin>>s;
cout<<endl;
ListElem_L(L,e);
cout<<"插入后的单链表为: "<<endl;
print_L(L);
cout<<endl;return;
break;
case 5:return;
default:
cout<<"按任意键退出!"<<endl;
}
}
}
编译结果是:
j:\数据结构\单链表\单链表.cpp(146) : warning C4700: local variable 'e' used without having been initialized
单链表.obj - 0 error(s), 0 warning(s)
分享到:
相关推荐
一直以来,从爱赛思论坛受益颇多,虽然很久不用ACCESS了,但总想做点什么以回报受赛思。现将以前做的采购管理程序上传。 本程序采用了以前一位爱赛思前辈的界面程序ACCXPINTERFACE,本来想对源码加密的(以保护这个...
格式相似的api与属性转化为支付包小程序的格式其中包含了json、js、wxml的转换,但是转换只是治标并不治本,所以转化结束的源码中的一些错误还是需要靠自己进行解决。该程序可以给你的代码迁移省下一部分的精力。...
获取指定程序的运行路径,前段时间项目中要用到该功能,网上很多都是获取当前程序的运行路径,最后找了很久才找到类似的代码,修改了传上来共享下,帮助需要的人
从CASS10开始,安装文件夹里面就没有INDEX.INI文件了,对于批量修改等高线的线宽就非常不方便,为此,我找了很久,无意间只找到了一个在WORK.DEF数据库修改默认的线宽方法,受此启发,其实也可以在INDEXINI数据库...
小编想了很久所以决定把完整版本给大家发出来! 本次所发的版本带后端源码,另外本版本安装有点复杂 有问题可以留言,客服不提供技术服务! 好了废话也不和大家多说了 下面是小编给你们的简单安装教程 首先把后端...
写完调试了很久的代码,终于能比较正常的显示了,跟平时的指针钟差不多,就有时因霍尔传感器那影响,显示微微跳动。也增加了简单算法,解决电机速度变化导致画面变形问题。也有一种是三个圆圈代表的时钟,这个容易就...
学校课程设计想搞个围棋的,搜了很久,最后决定用这个,是由五子棋的代码改了一下,加入了搜集的吃子代码,本想通过数子的方式使其具有判断输赢的功能,但是还是失败了,不过此程序能基本实现围棋的落子吃子功能,能...
基于TCP/IP socket的局域网聊天程序。 Server + Client 全 socket编程绝好的样例 编程语言: C++ 开发工具: vc6.0 本人写。有注释。。很久以前写的。。不多说了。
EasyKrig_V3.0_Matlab2012a....是大师对之前的那个版本的最新修改,修改了很多的错误,而且计算效率有所提高,是我在网上搜索很久才找到的最好的、最有效的克里金插值程序。适合二维和三维的数据、大量的数据点的插值!
这款“很久以前的”注册表对比器,可能是早期版本的软件,尽管年代久远,但其功能在当时被认为是非常实用的。 注册表是Windows操作系统的核心组成部分,存储着系统配置、程序设置等关键信息。对比注册表有助于理解...
我们这几个人已经很久没上过课了,老师看了作业很满意,然后问我们,你们做了多长时间。我本来想说一个通宵,后来觉得这样不妥,于是说3,4天。老师吐了一句,这么快?(PS,这东西那么简单,从0开始学还是很快的,一...
因为不熟悉JS,所以代码风格很差,照葫芦画瓢还画的很丑。 小程序的服务器是用的官方PHP环境镜像,因为后端PHP代码使用了Mysqli扩展,镜像里PHP没有Mysqli扩展,所以我把它卸载重装了。 欢迎小程序爱好者一起交流...
在本示例中,我们探讨的是一个使用C++语言编写的通讯录应用程序,该程序是在Visual Studio C++环境中开发的。C++是一种强大的、面向对象的编程语言,它结合了低级内存管理的能力与高级抽象概念,使得开发者可以创建...
这个名为"Cn_SWiX 1.4.exe"的文件很可能是一个名为SWiX的SWF修改工具的安装程序,版本为1.4。SWiX是一款开源的SWF编辑器,它允许用户打开、编辑和保存SWF文件。通过这个工具,开发者和设计师可以对SWF文件进行深度...
### PLSQL隔断时间再执行SQL的时候卡死未响应(要等很久才有结果)解决办法 在使用PL/SQL Developer或其他Oracle数据库管理工具时,可能会遇到一个常见的问题:执行SQL语句或存储过程时,系统长时间无响应或者卡住...
我很久以前就想上传这个项目。 此项目仅适用于有经验的改装者和程序员,并且必须能够在Google上搜索以寻求帮助。 在此我们将不解释基于Lgl团队登录的项目。 完全脱机,而不是jni中的php密码和用户名,它们被混淆以...
微信小程序已经出来挺久的时间了,之前只是在文档上粗略的看了一下,最近稍得空闲,便利用微信小程序平台写一个练手的项目,顺便学习一下小程序开发,感觉大体跟前端开发基本类似,但是因为是在微信的平台上运行,...
描述中提到“很久以前写的一个汇编程序”,这表明该程序年代较为久远,那时的计算机技术和编程方法相比现在较为原始。汇编语言是一种低级编程语言,直接对应于机器指令,程序员需要对计算机硬件有深入理解才能编写。...
【标题】中的“用SWING做的--酒店管理系统(很久以前的作业)”表明这是一个基于Java Swing开发的项目,用于模拟和管理酒店的日常运营。Swing是Java提供的一个图形用户界面(GUI)工具包,用于创建桌面应用。在这个...
标题中的“收藏很久的适合个人主页Flash_Xml模块.zip”表明这是一个包含用于个人主页的Flash XML模块的压缩文件。Flash是一种曾经广泛应用于网页设计的技术,它允许创建动态、交互式的多媒体内容,而XML(可扩展标记...