PTA 求链式表的表长】的更多相关文章

6-1 求链式表的表长 (10 分)   本题要求实现一个函数,求链式表的表长. 函数接口定义: int Length( List L ); 其中List结构定义如下: typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLNode Next; }; typedef PtrToLNode List; L是给定单链表,函数Length要返回链式表的长度. 裁判测试程序样例: #include <stdio.…
7-19 求链式线性表的倒数第K项(20 分) 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息NULL. 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7思路:这个链表都不具有随机性,脑袋有坑用链表??然后看了下百度上有人用链表直接遍历就行,没意思没意思…
链式哈希表的接口定义 关于哈希表与链式哈希表的描述可以参阅:http://www.cnblogs.com/idreamo/p/7990860.html 链式哈希表的操作与属性有:初始化.销毁.插入元素.删除元素.查找元素.获取哈希表中无数的个数. chtbl_init int cltbl_init(CHTbl *htbl, int buckts, int (*h)(const void *key), int (*match)(const void *key1,const void *key2),…
哈希表(散列表) 通过哈希函数使元素的存储位置与它 的关键码之间能够建立一一映射的关系,在查找时可以很快找到该元素. 哈希表hash table(key,value) 的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里. 1.哈希冲突: 就是键(key)经过hash函数得到的结果作为地址去存放当前的键值对,但是却发现该地址已经有人先来了就会产生冲突.这个冲…
1.线性表链式存储结构及基本操作算法实现 (1)单链表存储结构类的定义: #include <iostream> using namespace std; template <class T> class LinList { private: ListNode <T> *head; //头指针 int size; //当前的数据元素个数 ListNode <T> *Index(int i); //定位 public: LinList(void); //构造函…
Length( List L ){ int res=0; while(L!=NULL){ res++; L=L->Next; } return res; }…
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式说明: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式说明: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息“NULL”. 样例输入与输出: 序号 输入 输出 1 4 1 2 3 4 5 6 7 8 9 0 -1 7 2 6 3 6 7 8 2 -2 NULL //注意,这一题,题目很简单,但是可能数据量会很大,如果不用二分来搜索肯定…
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息NULL. 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7 代码: #include <stdio.h> #include <stdlib.h> #include <string.h&g…
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息NULL. 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7 解题思路:寻找倒数第K项,这里所用的方法是定义两个指针,让第一个指针先走k步,然后两个指针一起移动,第一个指针移到末尾的时候,第二个指针就到了倒数…
一.链式存储的优势 线性表的存储可以通过顺序存储或链式存储实现,其中顺序存储基于数组实现(见本人上一篇博客),在进行插入删除等操作时,需对表内某一部分元素逐个移动,效率较低.而链式结构不依赖于地址连续的存储空间,可以克服数组表现线性表的缺陷. 二.基于链式存储线性表的基本操作 2.1 PtrToLNode Creat(int length):创建一个长度为length的线性表 //创建长度为length的链表 PtrToLNode Creat(int length) { PtrToLNode p…