博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pta-数据结构与算法题目集(中文)--4-4 链式表的按序号查找
阅读量:5946 次
发布时间:2019-06-19

本文共 2269 字,大约阅读时间需要 7 分钟。

hot3.png

本题要求实现一个函数,找到并返回链式表的第K个元素。

函数接口定义:

ElementType FindKth( List L, int K );

其中List结构定义如下:

typedef struct LNode *PtrToLNode;struct LNode {    ElementType Data;    PtrToLNode Next;};typedef PtrToLNode List;

L是给定单链表,函数FindKth要返回链式表的第K个元素。如果该元素不存在,则返回ERROR。

裁判测试程序样例:

#include 
#include
#define ERROR -1typedef int ElementType;typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;List Read(); /* 细节在此不表 */ElementType FindKth( List L, int K );int main(){ int N, K; ElementType X; List L = Read(); scanf("%d", &N); while ( N-- ) { scanf("%d", &K); X = FindKth(L, K); if ( X!= ERROR ) printf("%d ", X); else printf("NA "); } return 0;}/* 你的代码将被嵌在这里 */

输入样例:

1 3 4 5 2 -163 6 1 5 4 2

输出样例:

4 NA 1 2 5 3

code:

#include 
#include
#define ERROR -1typedef int ElementType;typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;List Read(); /* 细节在此不表 */ElementType FindKth( List L, int K );int main(){ int N, K; ElementType X; List L = Read(); scanf("%d", &N); while ( N-- ) { scanf("%d", &K); X = FindKth(L, K); if ( X!= ERROR ) printf("%d ", X); else printf("NA "); } return 0;}List Read(){ int num = 0; scanf( "%d",&num ); if( -1 == num ){ return NULL; } List list = ( List )malloc( sizeof( struct LNode ) ); List last = list; list->Data = num; list->Next = NULL; scanf( "%d",&num ); while( -1 != num ){ PtrToLNode node = ( List )malloc( sizeof( struct LNode ) ); node->Data = num; node->Next = NULL; last->Next = node; last = node; scanf( "%d",&num ); } return list;}//返回链式表的第K个元素。如果该元素不存在,则返回ERRORElementType FindKth( List L, int K ){ if( NULL == L ){ return ERROR; } if( K <= 0 ){ return ERROR; } PtrToLNode node = L; int i = 1; while( NULL != node && i < K ){ // printf( "data = %d\n",node->Data ); if( NULL == node->Next ){ break; } node = node->Next; i++; } if( i< K ){ return ERROR; }else{ return node->Data; }}

转载于:https://my.oschina.net/iamhere/blog/517843

你可能感兴趣的文章
oracle 相关操作
查看>>
JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)
查看>>
activeMQ安全配置及常见问题解决
查看>>
实作 ASP.NET 多笔数据离线编辑(转)
查看>>
solr的用分布式搜索(转)
查看>>
多媒体开发之rtmp---rtmp client 编译
查看>>
异常处理汇总 ~ 修正果带着你的Code飞奔吧!
查看>>
Java开发手冊 Java学习手冊教程(MtJava开发手冊)
查看>>
The Willpower Instinct
查看>>
注入复习总结
查看>>
OpenStack 部署总结之:单节点icehouse网桥的配置
查看>>
js---12数据类型,数据类型转换,NaN,
查看>>
C字符串处理函数
查看>>
超短reads(primer、barcode、UMI、index等)比对方法
查看>>
lua正则表达式如何匹配中文
查看>>
arcgis api for js热力图优化篇-不依赖地图服务
查看>>
php逻辑操作符中&和&&的异同
查看>>
Git 远程仓库(分布式版本控制系统)
查看>>
设计模式原则之里氏替换原则
查看>>
LeetCode: Longest Common Prefix 解题报告
查看>>