数据结构实验代码 1.单链表;2树的递归遍历

1.单链表

1.1算法描述

5a4cbcc6b6f14e15947fb551efc3c456.jpg

 dfa3cc1cd2dc49d8a735f0255ed45147.jpg

 936d038b19244c6293cb8eeeda2a4738.jpg

e037c6504c3441e792635b5d6919b2e6.jpg ad681e2b012b4209a3d010d4ad04ad7d.jpg

6638e63ecf7b46928d5aef0dd29aec20.jpg 

fc1e53b5e5d54c2da6f084d2288fd913.jpg 

1.2代码 

 #include <stdio.h>

#include<malloc.h>

 

typedef char elemtype;

 

typedef struct lnode

{

 elemtype data;

 struct lnode *next;

 

}linklist;

 

void initlist (linklist *&L)//创建一个表

{

 L=(linklist *)malloc(sizeof(linklist));

 L->next=NULL;

}

 

int listlnsert(linklist *&L,int i,elemtype e)//在第i个位置插入元素

{

 int j=0;

 linklist *p=L,*s;

 while(j<i-1&&p!=NULL)

 {

 j++;

 p=p->next;

 } 

 if(p==NULL)

  return 0;

 else

 {

 s=(linklist*)malloc(sizeof(linklist));

 s->data=e;

 s->next=p->next;

 p->next=s;

 return 1;

 }

}

 

int listdelete(linklist *&L,int i,elemtype &e)//删除元素

{

 int j=0;

 linklist *p=L,*q;

 while(j<i-1&&p!=NULL)

 {

 j++;

 p=p->next;

 } 

 if(p==NULL)

  return 0;

 else

 {

  q=p->next;

  e=q->data;

  p->next=q->next;

  free(q);

  return 1;

}

}

 

void destroylist(linklist *L)//释放表

{

 free(L);

}

 

int getelem(linklist *L,int i,elemtype &e)//表中第i个元素是什么

{

 int j=0;

 linklist *p=L;

 while(j<i&&p!=NULL)

 {

 j++;

 p=p->next;

 }

 if(p==NULL)

  return 0;

 else  

 {

 e=(p->data) ;

 return 1;

 } 

}

 

void displist(linklist *L)//输出表

{

 linklist*p=L->next;

 while(p!=NULL)

 {

 printf("%c",p->data);

 p=p->next;

 }

 printf("\n");

}

 

int main()

{

 linklist *h;

 elemtype e;

 printf("(1)初始化单链表h\n");

 initlist (h);

 printf("(2)依次采用尾插法插入元素a,b,c,d,e\n");

 listlnsert(h,1,'a');

 listlnsert(h,2,'b');

 listlnsert(h,3,'c');

 listlnsert(h,4,'d');

 listlnsert(h,5,'e');

 printf("(3)输出单链表h:");

 displist(h);

 getelem(h,3,e);

 printf("(4)单链表h的第三个元素=%c\n",e);

 printf("(5)在第四个元素位置上插入f元素\n");

 listlnsert(h,4,'f');

 printf("(6)输出单链表h:");

 displist(h);

 printf("(7)删除单链表h上的第三个元素:\n");

 listdelete(h,3,e);

 printf("(8)输出单链表h:");

 displist(h);

 printf("(9)释放单链表h:\n");

 destroylist(h); 

 return 0;

}

 

1.3运行结果

(1)初始化单链表h

(2)依次采用尾插法插入元素a,b,c,d,e

(3)输出单链表h:abcde

(4)单链表h的第三个元素=c

(5)在第四个元素位置上插入f元素

(6)输出单链表h:abcfde

(7)删除单链表h上的第三个元素:

(8)输出单链表h:abfde

(9)释放单链表h:

请按任意键继续. . .

 

 

 

 

2.树的递归遍历

2.1算法描述

fcbaed1e413b4b0bbb07e4843bbb5258.jpg

f5720d0d454d4c599cdc88168213cfe1.jpg 

3f5b501a7f0b4683bf316408570229fc.jpg 

2.2代码

 #include<stdio.h>

#include<malloc.h>

typedef char elemtype;

 

typedef struct node{

elemtype data;

struct node *lchild,*rchild;

}btnode,*bitree;

 

bitree createbitree()

{

char ch;

scanf("%c",&ch);

bitree t=nullptr;

if(ch=='#') t=NULL;

else

{

t=(btnode *)malloc(sizeof(btnode));

t->data =ch;

t->lchild =createbitree();

t->rchild =createbitree();

}

return t;

}

 

void preorder(btnode *b)

{

if(b!=NULL)

{

printf("%c",b->data );

preorder(b->lchild );

preorder(b->rchild );

}

}

 

void inorder(btnode *b)

{

if(b!=NULL)

{

inorder(b->lchild );

printf("%c",b->data );

inorder(b->rchild );

}

}

 

void postorder(btnode *b)

{

if(b!=NULL)

{

postorder(b->lchild );

postorder(b->rchild );

printf("%c",b->data );

}

}

 

int main()

{

 btnode *b;

 b=createbitree();

 printf("先序遍历访问结果:\n");

 preorder(b);printf("\n");

 printf("中序遍历访问结果:\n");

 inorder(b);printf("\n");

 printf("后序遍历访问结果:\n");

 postorder(b);printf("\n");

 return 0;

}

2.3运行结果

-+a##*b##-c##d##/e##f##

先序遍历访问结果:

-+a*b-cd/ef

中序遍历访问结果:

a+b*c-d-e/f

后序遍历访问结果:

abcd-*+ef/-

请按任意键继续. . .

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26765.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构实验课考试 1.单链表;2树的递归遍历

1.单链表 1.1算法描述 1.2代码 1.3代码运行结果 2.树的递归遍历 2.1算法描述 2.2代码 2.3代码运行结果

vue+uview实现仿微信通讯录(提醒谁看功能)

实现功能如下图&#xff1a;(索引列表加头像和选择框&#xff0c;选择好的好友在顶部展示出来) 首先引入uview里面的索引列表组件&#xff1a;(用于展示好友列表) <view class"" style"width: 700rpx;margin: 0 auto;"> <u-index-lis…

day03_顺丰快递分拣小程序

目录 一、又见str1.1 字符串定义1.2 字符串常用操作1.2.1 str.center(width[, fillchar])1.2.2 str.count(sub, start 0,endlen(string))1.2.3 str.encode(encodingUTF-8,errorsstrict)1.2.4 str.endswith(suffix[, start[, end]])1.2.5 str.find(str, beg0, endlen(string))1.…

PYTHON 顺丰快递分拣小程序-极简9行代码实现分拣

给定一组打乱的快递信息数据&#xff0c;将快递按省份进行分类&#xff0c;最终实现如下格式效果&#xff1a; 数据源如下&#xff1a; [[王*龙, 北京市海淀区苏州街大恒科技大厦南座4层],[庞*飞, 北京市昌平区汇德商厦四楼403],[顾*锐, 江苏省扬州市三垛镇工业集中区扬州市立…

python快递分拣小程

需求 &#xff1a; 分拣出同一省份的信息 格式 省份 : 名字 地址 ...... 完整 代码 noe_list [[王*龙, 北京市海淀区苏州街大恒科技大厦南座4层],[庞*飞, 北京市昌平区汇德商厦四楼403],[顾*锐, 江苏省扬州市三垛镇工业集中区扬州市立华畜禽有限公司],[王*飞, 上海市徐汇区上…

重磅!2020国家科学技术奖全名单公布!

来源&#xff1a;软科 2021年11月3日&#xff0c;2020年度国家科学技术奖励大会在人民大会堂正式召开。 备受关注的国家最高科学技术奖&#xff0c;授予了中国航空工业集团有限公司顾诵芬院士和清华大学王大中院士。国家最高科学技术奖自2000年正式设立&#xff0c;是中国科技…

谷歌又闹大乌龙!Jeff Dean参与的新模型竟搞错Hinton生日

【导读】最近&#xff0c;谷歌研究员发布了关于指令微调的最新工作&#xff01;然而却宣传图中出现了可笑的乌龙。 几个小时之前&#xff0c;谷歌大脑的研究员们非常开心地晒出了自己最新的研究成果&#xff1a; 「我们新开源的语言模型Flan-T5&#xff0c;在对1,800多种语言…

汽车电子的AI时刻

来源&#xff1a;《中国电子商情》 感谢Imagination汽车产品业务发展和市场总监陈竹女士、芯擎科技业务拓展经理邵楠女士、中汽中心工程院网联与线控底盘室主任郭蓬女士和国创中心电子电子电气部部长李秋霞女士对本文的贡献与支持&#xff0c;本文观点均来自上述四位行业人士对…

DriveGPT、车企订单背后,为什么毫末每年都能搞出新东西?

作者 | 祥威 编辑 | 德新 4月11日&#xff0c;毫末智行正式发布自动驾驶生成式大模型 DriveGPT&#xff0c;中文名 雪湖海若&#xff0c;可以提升自动驾驶认知能力&#xff0c;最终提升规控效率。 雪湖海若的核心&#xff0c;是将各种驾驶场景作为Token输入到模型中&…

ChatGPT火到汽车圈,毫末智行、集度纷纷进场

作者 | 白日梦想家 编辑 | 于婷 ChatGPT的火爆&#xff0c;已经席卷到了汽车领域。 众多相关企业宣布纷纷布局&#xff0c;车企也争相宣布将搭载类似产品。 2月初&#xff0c;百度宣布将在今年3月完成类似ChatGPT的项目“文心一言”的内部测试。据悉&#xff0c;该产品是基于…

MOSS 真的要来了吗?——ChatGPT

最近在网络上在疯传各种 ChatGPT 的新闻消息和视频&#xff0c;大家把 ChatGPT 传得神乎其神的&#xff0c;今天我们就来聊一聊最近爆火的 ChatGPT 究竟是什么来头。 ChatGPT 是什么 ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型&#xff0c;它能够通过…

四面八方WP

四面八方 四方门主东方青木看着四面八方涌过来的极客&#xff0c;非常震惊&#xff0c;转头便进入了祖祠中的地下室&#xff0c;发现这丫传自唐朝的密室还设计了英文密码。旁边的石头上&#xff08;附件中有拓本&#xff09;刻着密码和密文&#xff0c;大家快帮助门主解出密码…

【Python】用Python做个学生管理系统,可以用作毕业设计哟~(附原码)

准备工作 环境准备 Python 3.8Pycharm 2021.2 知识点 Python基础语法基本的数据类型与结构基本的逻辑控制语句实战小项目 代码流程 赋值 赋值 就是把等号左边的内容 用 等号右边的这个变量名字 接收 msg """******************************************…

《小时代2青木时代》 短评 与郭敬明的中立评价

到底是什么原因&#xff0c;让一部被骂得狗血的影片还这么卖座&#xff0c;昨天补了小时代1&#xff0c;今天接着看了小时代2。 这是一个最坏的时代&#xff0c;也是最好的时代。 下面网摘一条粉丝的评论和批评者的声音 我觉得小时代2很好看&#xff0c;比起第一部来真的有进步…

谈古论津丨天津杨柳青年画为何要用娃娃作主题?

一提天津三绝&#xff0c;很多人都知道是狗不理包子、十八街麻花和耳朵眼炸糕&#xff0c;其实杨柳青年画、泥人张、风筝魏也是天津三绝&#xff0c;只不过是民间艺术三绝。 而天津杨柳青、苏州桃花坞、四川绵竹、潍坊杨家埠是中国四大年画产地&#xff0c;其中杨柳青和桃花坞…

电视剧《一代枭雄》观后感

电视剧《一代枭雄》观后感 肺炎疫情期间自行在家隔离&#xff0c;追剧成为一个很好的选择。憋屈而单调的生活&#xff0c;精神层面总得需要营养来补充&#xff0c;不然这种长期隔离生活&#xff0c;会让人发疯的。笔者找到了孙红雷主演的这部电视剧《一代枭雄》&#xff0c;这部…

使用 Spring Boot Operator 部署 Spring Boot 到 Kubernetes

大家好&#xff0c;我是DD。 2022年了&#xff0c;你们开始用Kubernetes了吗&#xff1f;那么Spring Boot应用要如何部署到Kubernetes里呢&#xff1f;下面给大家转了一篇不错的深度好文&#xff0c;一起来学习一下吧&#xff01; 以下内容来源&#xff1a;https://qingmu.io/2…

曝光 兼职达人(深圳市青木网络科技)无耻、恶心

《兼职达人&#xff08;深圳市青木网络科技&#xff09;无耻、恶心》公司地点&#xff1a;学府路学府楼1楼相关人物&#xff1a; A:余鑫&#xff08;合伙人&#xff09;李帛仑&#xff08;老板&#xff09; B:安丹&#xff08;HR行政&#xff0c;此人恶心至极&#xff0c;现在…

NFT 推荐|史蒂夫·青木 NFT 作品集

像扔蛋糕一样向你袭来&#xff01; 一旦你拥有这个独家 NFT 系列&#xff0c;除了史蒂夫本人&#xff0c;没有人会比你更特别&#xff01;用史蒂夫的疯狂动物创作创造你自己的 metazoo&#xff0c;或者用多个史蒂夫化身填充你的 Aokiverse&#xff0c;甚至可以装备特殊运动鞋&a…

《恒盛策略》电商概念强势拉升,凯淳股份“20cm”涨停,青木股份等大涨

电商概念21日盘中强势拉升&#xff0c;截至发稿&#xff0c;凯淳股份“20cm”涨停&#xff0c;青木股份涨超14%&#xff0c;光云科技涨超10%&#xff0c;生意宝、若羽臣、联络互动等涨停&#xff0c;焦点科技、黑芝麻涨超8%&#xff0c;返利科技、跨境通、比依股份等涨超7%&…