数据结构教程第五版上机实验指导(数据结构上机: 用顺序存储结构建立一个通讯录内容有姓名,地址,电话号码)

:暂无数据 2026-05-07 07:00:01 0
今天这份关于数据结构教程第五版上机实验指导的指南,将用80%的篇幅讲透数据结构上机: 用顺序存储结构建立一个通讯录内容有姓名,地址,电话号码这个决定成败的细节,绝对让你不虚此行。

本文目录

数据结构上机: 用顺序存储结构建立一个通讯录内容有姓名,地址,电话号码

#include 《iostream》
#include 《fstream》
#include 《string》
using namespace std;
#define SIZE 10
struct AddrList
{
string name;
string ***;
int age;
string QQ;
}addrlist;
int main()
{
int i;
int j;
cout《《"输入要输入的记录数量:";
cin》》i;
if (i》SIZE)
{
cout《《"输入的记录数量大于顺序表的最大长度!"《《endl;
return 0;
}
cout《《"输入格式:\n姓名 性别 年龄 QQ\n"《《endl;
for (j=0;j《i;++j)
{
cout《《"输入第"《《j+1《《"条记录"《《endl;
cin》》*****;
}
cout《《"\n姓名\t性别\t年龄\tQQ"《《endl;
for (j=0;j《i;++j)
{
cout《《*****《《endl;
}
return 0;
}
输入:2
张三 男 23 123456
李四 女 24 66666

数据结构实验:线性表的顺序表示和链式表示及插入、删除、查找运算

这是我的第一次上机实验课的内容来呢!
#include 《*****》
#include 《*****》
#include《*****》

struct list //结点类型
{ int data;
struct list *next;
};
struct list *head;//声明结点指针
int static length;//声明表长变量
struct list *creat_n()//创建有n个元素的链表
{
struct list *q,*p,*head=NULL;
printf("\n输入你所要创建的结点数: ");
scanf("%d",&length);
head=p=(list*)malloc(sizeof(list)); //创建一个新结点并用头指针指向它
printf("输入该结点的值: ");
scanf("%d", &p-》data);
p-》next=NULL;
for(int i=length-1;i》=1;i--)
{
q=p;
p=(list*)malloc(sizeof(list)); //创建新结点
printf("输入该结点的值: ");
scanf("%d", &p-》data);
q-》next=p;
}
printf("输入完毕\n\n");
p-》next=NULL;
return head;
}
struct list * output()//输出表长与结点值函数
{
struct list *p;
p=head;

printf("\n当前链表中存有的元素:\n");
while(p!=NULL)
{
printf("%d\n",p-》data);
p=p-》next;
}
printf("当前的表长是: %d\n\n",length);//输出当前表长
return head;
}
void insert()//插入结点函数
{
struct list *k,*p,*q;
int x;
printf("请输入你要在哪个结点值之前插入新结点: ");
scanf("%d",&x);

k=(list*)malloc(sizeof(list));//创建新结点
printf("请输入新结点的值: ");
scanf("%d",&k-》data);
k-》next=NULL;
if(head==NULL)//若链表为空,则直接入链表
{
head=k;
length=length+1;
printf("插入成功\n\n");
}
else if(head-》data==x)//在第一个结点前插入新结点
{
k-》next=head;
head=k;
printf("插入成功\n\n");
length=length+1;
}
else
{
q=head;
p=head-》next;
while((p != NULL) && (p-》data != x))//找出值为X的结点的位置
{
q = p;
p = p-》next;
}

if (p == NULL)
{
q-》next=k;//在链表末插入新结点
printf("插入成功\n");
length=length+1;
}
else if(p-》data == x)//在要求的X结点前插入新结点
{
k-》next=p;
q-》next=k;
printf("插入成功\n\n");
length=length+1;
}

}
output();
}
int delet()//删除结点函数
{
struct list *q,*p;
int x,y;
printf("请输入你所要删除的结点值: ");
scanf("%d",&x);
if(head==NULL)//表空
{
printf("表空\n");
return 0 ;
}
else if(x==head-》data)//第一个结点为删除的结点
{
q=head;
head=head-》next;
y=q-》data;
****(q);

printf("删除成功\n\n");
length=length-1;
output();
return(y);
}
else
{
q=head;
p=head-》next;
while((p != NULL) && (p-》data != x))//找出值为X的结点
{
q=p;
p=p-》next;
}
if(p==NULL)
{
printf("没有删除对象\n");
}
if(x==p-》data)//删除值为X的结点
{
q-》next=p-》next;
y=p-》data;
****(p);
printf("删除成功\n\n");
length=length-1;
output();
return (y);
}
else
{
printf("表中没有指定的结点\n");
output();
return 0;
}
}
return 0;
}
void find()
{
struct list *p;
int k,x,i=1;
char y,n;

LOOP:
p=head;
printf("请输入你要查找的结点值: ");
scanf("%d",&x);
while(p-》data!=x)
{
p=p-》next;
i++;

}
printf("你所查找的结点是表中第 %d 个结点!\n\n",i);
printf("是否要继续查找,请输入y/n\n\n");
k=getch();
if(k==’y’)
{
i=1;
goto LOOP;
}
else
return;
}

void main()
{
printf("计Y062 200502001052 李抱和\n\n");
int a;
LOOP:
printf(" *****************\n");
printf(" ** 1 创建链表 **\n");
printf(" ** 2 链表输出 **\n");
printf(" ** 3 插入结点 **\n");
printf(" ** 4 删除结点 **\n");
printf(" ** 5 查找结点 **\n");
printf(" *****************\n");
printf("\n请选择: ");
scanf("%d",&a);

switch(a)
{
case 1 :
head=creat_n();
break;
case 2 :
output();
break;
case 3 :
insert();
break;
case 4 :
delet();
break;
case 5 :
find();
break;
}
goto LOOP;
}

数据结构上机实验***设计一个程序exp7–*****,实现二叉树

什么是二叉树的基本算法? 算法是建立在应用的基础上的,没有明确的需求,对于数据结构,算法的设计恐怕也没什么根据

除了数据结构上机: 用顺序存储结构建立一个通讯录内容有姓名,地址,电话号码数据结构教程第五版上机实验指导领域还有很多值得探讨的话题。点击下方“相关推荐”,发现更多精彩内容。
本文编辑:admin

更多文章:


wireshark找不到网卡(win7使用USB无线网卡,但是wireshark不能发现这块网卡,该怎么处理)

wireshark找不到网卡(win7使用USB无线网卡,但是wireshark不能发现这块网卡,该怎么处理)

面对wireshark找不到网卡这个议题,很多人在win7使用USB无线网卡,但是wireshark不能发现这块网卡,该怎么处理这里栽了跟头。今天,我们就来聊聊如何避免这个坑,轻松上手。

2026年5月7日 08:20

redis数据类型八种(Redis有哪些数据类型)

redis数据类型八种(Redis有哪些数据类型)

承接之前对redis数据类型八种的讨论,本篇我们将视角下沉,专门来聊聊实操中无法回避的Redis有哪些数据类型问题,让知识落地。

2026年5月7日 08:00

如何调节字体大小(电脑字体怎么调整大小)

如何调节字体大小(电脑字体怎么调整大小)

大家好,如何调节字体大小相信很多的网友都不是很明白,包括电脑字体怎么调整大小也是一样,不过没有关系,接下来就来为大家分享关于如何调节字体大小和电脑字体怎么调整大小的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

2026年5月7日 07:40

数据库系统属于什么(操作系统数据库系统属于什么)

数据库系统属于什么(操作系统数据库系统属于什么)

大家好,今天小编来为大家解答以下的问题,关于数据库系统属于什么,操作系统数据库系统属于什么这个很多人还不知道,现在让我们一起来看看吧!

2026年5月7日 07:20

数据结构教程第五版上机实验指导(数据结构上机: 用顺序存储结构建立一个通讯录内容有姓名,地址,电话号码)

数据结构教程第五版上机实验指导(数据结构上机: 用顺序存储结构建立一个通讯录内容有姓名,地址,电话号码)

今天这份关于数据结构教程第五版上机实验指导的指南,将用80%的篇幅讲透数据结构上机: 用顺序存储结构建立一个通讯录内容有姓名,地址,电话号码这个决定成败的细节,绝对让你不虚此行。

2026年5月7日 07:00

变身特效软件(绿巨人变形特效用什么软件做的)

变身特效软件(绿巨人变形特效用什么软件做的)

各位老铁们好,相信很多人对变身特效软件都不是特别的了解,因此呢,今天就来为大家分享下关于变身特效软件以及绿巨人变形特效用什么软件做的的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年5月7日 06:40

sql语句查询日期(关于**L模糊查询日期时间的方法)

sql语句查询日期(关于**L模糊查询日期时间的方法)

sql语句查询日期和关于**L模糊查询日期时间的方法,看似独立,实则血脉相连。它们是如何相互影响的?本文将为你层层剖析。

2026年5月7日 06:20

05网学霸答案(智学网怎么看学霸答案)

05网学霸答案(智学网怎么看学霸答案)

花费5分钟阅读本文,您将获得对05网学霸答案和智学网怎么看学霸答案的清晰认知,远超自己搜索数小时的效果。

2026年5月7日 06:00

斯特林切尔西(斯特林当选切尔西2-1莱斯特城最佳,他和梅西的差距还有多大)

斯特林切尔西(斯特林当选切尔西2-1莱斯特城最佳,他和梅西的差距还有多大)

你是否好奇,为什么人人都在谈斯特林切尔西?它和斯特林当选切尔西2-1莱斯特城最佳,他和梅西的差距还有多大之间究竟存在着怎样微妙的联系?答案就在下文。

2026年5月7日 05:40

vue rules 表单验证(vue:动态添加删除el-form-item并做rules校验)

vue rules 表单验证(vue:动态添加删除el-form-item并做rules校验)

各位朋友,关于vue rules 表单验证的讨论一直很多,今天咱们不聊复杂的,就聚焦于vue:动态添加删除el-form-item并做rules校验,用最直白的方式把它讲清楚。

2026年5月7日 05:20

最近更新

热门文章

split函数 sql(求sql split函数的用法)
2026-03-26 20:40:01 浏览:1
标签列表