(p143)11.1-4大数组直接寻址
来源:互联网 发布:顾家北和慎小嶷 知乎 编辑:程序博客网 时间:2024/06/05 20:15
首先,直接访问的肯定是大数组,因此选择在大数组(h)里存元素在栈(st类似于栈)中的位置(如果有的话),注意h应该要是unsigned int类型的,不然有可能为负数,引起数组越界访问错误
/* * source.c * * Created on: Feb 24, 2016 * Author: wing */#include<stdio.h>#include<stdlib.h>#define maxn 100#define maxsize 1000000struct stack{int s[maxn];int top;};int insert(unsigned int *h,struct stack *st,int n){if (st->top==maxn-1){printf("stack overflow!\n");return 0;}st->top++;h[n]=st->top;st->s[st->top]=n;return 0;}int search(unsigned int *h,struct stack *st,int n){if (n<=maxsize&&h[n]<=st->top&&st->s[h[n]]==n)return 1;elsereturn 0;}int Delete(unsigned int *h,struct stack*st,int n){if (search(h,st,n)){st->s[h[n]]=st->s[st->top];h[st->s[st->top]]=h[n];st->top--;return 0;}elseif (st->top==-1){printf("stack underflow!\n");return 0;}else{printf("not found!\n");return 0;}}int main(void){int i,n;unsigned int h[maxsize+1];struct stack st;st.top=-1;scanf("%d",&i);while (i!=-1){switch (i){case 1:scanf("%d",&n);insert(h,&st,n);break;case 0:scanf("%d",&n);Delete(h,&st,n);break;case 2:scanf("%d",&n);printf("%d\n",search(h,&st,n));;break;default:break;}scanf("%d",&i);}return 0;}
0 0
- (p143)11.1-4大数组直接寻址
- 算法导论 11.1-4 大数组的直接寻址表
- 算法导论-第11章-散列表-11.1-4 大数组的直接寻址表
- 【算法导论】十一章散列表11.1-4大数组实现直接寻址方式的字典操作
- CLSR 11.1直接寻址表
- 立即寻址,直接寻址,间接寻址
- 数组 指针比较 直接寻址和间接寻址 数组和指针在编译的时候的区别
- 数组 指针比较 直接寻址和间接寻址 数组和指针在编译的时候的区别。。。
- 算法-----直接寻址表
- 直接寻址法hash
- 直接寻址方式
- [数据结构] 直接寻址表
- 直接寻址书写格式
- 七种寻址方式(直接寻址方式)
- 《算法导论》笔记 第11章 11.1 直接寻址表
- 算法导论11.1直接寻址表 练习总结
- poj 2366 直接寻址法
- 算法导论 直接寻址表
- IOS Apps 开发(Swift)(3)——Build a Basic UI(1)
- linux环境下部署tomcat工程,日志不走log4j配置而打印到catalina.out可能的原因
- 基于用户的协同过滤算法
- 解决GitHub Pages屏蔽百度爬虫的方法
- ReactiveCocoa框架菜鸟入门——信号(Signal)详解 第五课:适合给新手看的RAC用法总结
- (p143)11.1-4大数组直接寻址
- JavaSE程序分析002 try-catch-finally与return的小事情
- Leetcode之super ugly number
- viewpageindicator +fragment 在网络访问中与volley框架 null问题
- @RequestParam 和@RequestBody的使用方式
- 三维旋转矩阵推导
- 省选算法汇集(持续更新)最后更新2016.2.29
- 软件测试面试 (一) 如何测试一个杯子
- hibernate-validator的使用说明