前两篇内容为栈和队列的顺序结构的实现,栈和队列都是特殊的线性表,线性表除了有顺序结构以外,还有线性结构。 一.线性表的链形结构--链表 使用顺序存储结构好处为实现方式使用数组方式,顺序是固定的。所以查询某个位置的元素特别容易,时间复杂度为O(1),但是当增加或者删除时,会需要将操作元素后面的元素整体 ...
分类:
其他好文 时间:
2017-08-10 19:31:55
阅读次数:
136
队列和栈简单的区别为栈是后进先出,队列是先进先出。队列也是特殊的线性表,所以队列也分为顺序存储结构和链式存储结构。本篇主要描述顺序存储结构。 我们先假定一个队列里有5个元素,当我们添加新元素时,添加到队列的最后一个位置,所以时间复杂度为O(1),当我们弹出元素时,需要将队列头部的元素弹出,并将后面的 ...
分类:
其他好文 时间:
2017-08-08 15:20:53
阅读次数:
169
一、定义 二分查找 又称为折半查找 , 是一种查找效率较高的方法 。 要求 : 1 . 所查找的序列为有序序列 2. 只能在顺序存储结构上实现 二、基本思想 每次将给定的 key 值与有序表中间位置上记录的数据进行比较 ,确定待查记录所在的范围 , 然后逐渐缩小查找范围 , 直到确定找到或找不到 。 ...
分类:
其他好文 时间:
2017-08-06 14:16:04
阅读次数:
143
头文件 head.h#include<string.h> #include<ctype.h> #include<malloc.h> /* malloc()等 */ #include<limits.h> /* INT_MAX等 */ #include<stdio.h> /* EOF(=^Z或F6),N ...
分类:
其他好文 时间:
2017-08-03 13:54:28
阅读次数:
180
线性查找分为顺序查找、折半查找。 顺序查找: 折半查找: 第一: 数组必须有序,不是有序就必须让其有序。 第二: 这种查找只限于线性的顺序存储结构。 线性查找时间复杂度:O(n); 折半无序(用快排或堆排)的时间复杂度:O(NlogN)+O(logN); 折半有序的时间复杂度:O(logN); 哈希 ...
分类:
其他好文 时间:
2017-08-02 00:27:34
阅读次数:
108
折半查找法适合于1采用顺序存储结构的2必须按照关键字大小排序的序列查找 如代码所示: 折半查找法的基本思路是设置low,high, mid三个变量。如代码所示,就是通过不断的改变这3个变量来查找是否存在查找值K,如存在返回它所在的位置,如不存在,返回0 折半查找法的优点是比较次数比顺序查找少,但缺点 ...
分类:
其他好文 时间:
2017-07-26 13:37:35
阅读次数:
143
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 算法要求 1,必须采用顺序存储结构 2,必须按关键字大小有序排列 算法复杂度 二分查找的基本思想是将n个元素分成大致相等的两部分,取a ...
分类:
其他好文 时间:
2017-07-26 01:49:43
阅读次数:
153
// onlinejudge.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #define CardNumber 13 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define M... ...
分类:
其他好文 时间:
2017-07-21 01:31:35
阅读次数:
134
程序的基本结构 包含的文件有: common.h —— 一般的头文件,包含了常用的头文件,状态 c3-1.h —— 包含了基本操作的原型,类型定义 bo3-1.c —— 基本操作的实现 main3-1.c —— 测试各种操作 common.h中的内容 c3-1.h中的内容 bo3-1.c中的内容 m ...
分类:
编程语言 时间:
2017-07-19 23:31:40
阅读次数:
233
1. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作:q=head;while (q->next!=p) q=q->next;s= new Node; s->data=e;q->next= ; //填空 s->next= ; //填空 2. 线性表的顺序存储结构是一种_ ...
分类:
其他好文 时间:
2017-07-15 12:47:15
阅读次数:
106