习题3.15 自调整表Find例程

#include<stdio.h>
#include<stdlib.h>

typedef int * List;
/* 自调整表的Find数组实现 */
int
Find(List L,int MaxSize,int X)
{
    int where = 0;
    for( i = 1; i < MaxSize; i++ )
    {
        if( L[i] == X )
        {
            where = i;
            break;
        }
    }
    if(where){
        for( i = where; i > 1; i-- )
        {
            L[i] = L[i-1];
        }
        L[1] = X;
    }
    else
        return 0;
}
/* 自调整表的链表实现 */
struct Node;
typedef struct Node * List;
struct Node{
    int data;
    struct Node *Next;
};

int
Find(int X,List L)
{
    struct Node * p;
    p = L->Next;
    while(p != NULL && p->data != X )
        p = p->Next;
    if( p != NULL )
    {
        int t;
        t = L->Next->data;
        L->Next->data = X;
        p->data = t;
    }
    else
        return 0;
}

标答第二个例程是把那个结点给删除,然后从新接在头结点后

时间: 2024-08-29 05:39:38

习题3.15 自调整表Find例程的相关文章

[詹兴致矩阵论习题参考解答]习题3.15

15. 设 $S_n[a,b]$ 表示所有元素属于给定的区间 $[a,b]$ 的 $n$ 阶实对称矩阵的集合. 对于 $j=1,n$ 确定 $$\bex \max\sed{\lm_j(A);\ A\in S_n[a,b]}\mbox{ 和 } \min\sed{\lm_j(A);\ A\in S_n[a,b]}, \eex$$ 以及分别取到最大值和最小值的矩阵. 解答: 对 $0\neq x\in\bbR^n$, $$\beex \bea &\quad x^TAx\\ &=x^TP^T (

[詹兴致矩阵论习题参考解答]习题4.15

15. (Fan-Hoffman) 设 $A,H\in M_n$, 其中 $H$ 为 Hermite 矩阵, 则 $$\bex \sen{A-\Re A}\leq \sen{A-H} \eex$$ 对任何酉不变范数成立. 证明: (1). 先证明 $$\bex \sen{\cdot} \mbox{ 是酉不变范数}, X\in M_n\ra \sen{X}=\sen{X^*}. \eex$$ 事实上, $X$ 与 $X^*$ 有相同的奇异值, 而 $$\bex s(X)\prec s(X^*)\p

武汉科技大学ACM :1006: 华科版C语言程序设计教程(第二版)习题7.15

Problem Description 输入n个字符串(n<=100),输出其中最长的串,如果有多个则取最先找到的那一个. Input 多组测试数据. 每组测试数据第一行包含一个整数n,表示一共有n个字符串. 接下来每行包含一个字符串,由可打印字符组成. Output 每组测试样例输出一行.输出找到的满足题意的字符串. Sample Input 3 djdlkfjsadfjwe dlkfjdlkfjl;jf;sfjdsl;al/ dljfd 2 dlkasfjmml ld;femflsad;fi

C++ Primer(第四版) 课后习题7.15 main函数传参

问题:编写一个主函数main,使用两个值作为实参,并输出它们的和. 代码: #include <iostream> #include <stream> using namespace std; //计算两个数的和 int main(int argc, char **argv) { string strName = argv[0]; int a = stoi(argv[1]); int b = stoi(argv[2]); cout<<strName<<&qu

C++ Primer 习题11.15分析

题目: 算法标准库定义了一个名为unique_copy的函数,其操作与unique类似,唯一的区别在于:前者接受第三个迭代器实参,用于指定复制不重复元素的目标序列.编写程序,使用unique_copy将一个list对象中不重复的元素复制到一个空的vector容器中. 原有答案如下: #include <iostream> #include <iterator> #include <vector> #include <algorithm> #include &

SICP 习题 (2.15)解题总结:区间误差的深入思考

SICP 习题 2.15 是接着 题目 2.14 的, 题目 2.14中提到了Alyssa设计的区间计算模块在并联电阻计算时会出现问题,这个问题是Lem发现的.接着,一个叫Eva的人也发现了这个问题,同时她还有更深入的思考. Eva觉得,如果一个公式可以写成一种形式,其中具有非准确性的变量不重复出现,那么Alyssa的系统产生的区间的限界会更紧一些. 因此,她觉得在计算并联电阻时,公式"1/(1/R1 + 1/R2)"比公式"(R1*R2)/ (R1 + R2)"要

读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]

读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成员mutable 4. 用于const对象的构造函数:构造函数不能声明为const 5. 构造函数初始化式 构造函数的执行分为两个阶段:初始化阶段和普通的计算阶段 6. 构造函数初始化列表 7. 默认实参与构造函数 8. 类通常定义一个默认构造函数,不然的话使用起来会很麻烦. 9. 使用默认构造函数

C++(2)基本数据类型

变量和基本类型 引言: 1.各种程序设计语言都具有许多各具特色的特征,这些特征决定了用每种语言适合开发哪些类型的应用程序. 2.大多数现代现代程序设计语言都采用两种方式扩充语言的基本特征集:允许程序员通过自定义数据类型扩充该语言:提供一组库例程,这些例程定义了一些并非内置在语言中的实用函数和数据类型. 3.C++是静态类型语言,支持在编译时执行类型检查. 4.包括C++在内的其他语言允许程序员定义的类型不仅有数据还包含操作! 5.掌握C++的第一步就是学习语言的基本知识和标准库! 6.类型可以告

C++ Primer 学习笔记_3_变量和基本类型

 变量和基本类型 引言: 1.各种程序设计语言都具有许多各具特色的特征,这些特征决定了用每种语言适合开发哪些类型的应用程序. 2.大多数现代现代程序设计语言都采用两种方式扩充语言的基本特征集:允许程序员通过自定义数据类型扩充该语言:提供一组库例程,这些例程定义了一些并非内置在语言中的实用函数和数据类型. 3.C++是静态类型语言,支持在编译时执行类型检查. 4.包括C++在内的其他语言允许程序员定义的类型不仅有数据还包含操作! 5.掌握C++的第一步就是学习语言的基本知识和标准库! 6.类型