链表是一种动态数据结构,相较于数组而言,链表不需要预留空间,数据可以存储于内存的任何可用的位置,易于扩展。同时,相较于数组,链表增加和删除数据的效率较高,随机读取数据的效率较低。请完成本次实验,体会链表的这些特点。
C语言链表文件的数据操作综合
链表是一种动态数据结构,相较于数组而言,链表不需要预留空间,数据可以存储于内存的任何可用的位置,易于扩展。同时,相较于数组,链表增加和删除数据的效率较高,随机读取数据的效率较低。请完成本次实验,体会链表的这些特点。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 语言-逆行者 2022-12-18 17:23关注
第一题:
#include<stdio.h> #include<stdlib.h> #include<String.h> typedef char ElemType; typedef struct Link{ ElemType str[50]; struct Link *next; }Link; //初始化,创建头结点 Link *initList(Link *L) { L = (Link *) malloc(sizeof(Link));//为头结点分配空间 L->next = NULL;//头结点指针域置空 return L; } //创建指定个数的单链表 Link *createList() { int i; ElemType e[50]; char s[50]="******"; Link *L = initList(L), *r, *n;//分别定义头指针、尾指针、新指针 r = L;//尾指针初始化为头指针 for(;;) { n = (Link *) malloc(sizeof(Link));//申请空间 scanf("%s",n->str); if(strcmp(n->str,s)==0){break;} n->next = NULL;//新指针指针域置空 r->next = n;//将新指针链入单链表末尾 r = r->next;//尾指针往后移 } return L; } void seachLinkLong(Link *L,ElemType e[50]) { Link *r = L->next; for(;r!=NULL;) { if(strlen(r->str)>strlen(e)) { strcpy(e,r->str); } r = r->next;//尾指针后移 } } int main(){ Link*L; ElemType e[50]; L = createList(); seachLinkLong(L,e); printf("%s",e); return 0; }
第二题运行截图:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
- ¥15 unity连接Sqlserver
- ¥15 图中这种约束条件lingo该怎么表示出来
- ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
- ¥15 流式socket文件传输答疑
- ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
- ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
- ¥15 win10,这种情况怎么办
- ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
- ¥100 在连接内网VPN时,如何同时保持互联网连接