zoukankan      html  css  js  c++  java
  • 第八周知识总结

    1.复习c语言的编程题

    2.学会了线性表的合并,查找,插入,删除等等

    部分代码如下:

    // 初始化线性表 L,将 size 设为 0。
    void initial(List *L) {
    // 分配一段的元素的内存空间。
    L->elem = (ElemType *) calloc(SEGMENT, sizeof(ElemType));
    L->size = 0; // 线性表初始状态为空。
    L->capacity = SEGMENT; // 线性表初始内存容量。
    }

    // 取得线性表 L 的大小,返回元素个数。
    int getSize(List L) {
    return L.size; // 线性表 L 的大小。
    }

    // 取得线性表 L 的内存容量。
    int getCapacity(List L) {
    return L.capacity; // 线性表 L 的内存容量。
    }// 从 L 取得位置 i 的元素 e, 若 0<=i<size 返回 e,否则,返回值 -1。

    ElemType getElem(List L, int i) {
    if (i>=0 && i<L.size) return L.elem[i]; // 若 0<=i<size,返回 e。
    else return -1; // 否则,返回值 -1。
    }

    // 搜寻元素 e 在 L 中的位置。若成功,返回 e 的索引;否则,返回 -1。
    int search(List L, ElemType e) {
    int i; // 循环变量。

    for (i=0; i<L.size; i++)
    if (L.elem[i]==e) return i; // 搜寻成功。
    return -1; // 搜寻失败。
    }

    // 将元素 e 插入到 L 适当的位置。插入完成时,返回 e 的位置。


    // 从 L 删除元素 e。若成功,返回 e 原来的位置;否则,返回 -1。
    int delete(List *L, ElemType e) {
    int i, j; // 循环变量。

    for (i=0; i<L->size; i++)
    if (L->elem[i]==e) break; // 找到删除元素的位置。
    else if (L->elem[i]>e) return -1; // 元素 e 不是线性表 L 的元素,删除失败。

    // 假如 i==size, 元素 e 不是线性表 L 的元素,删除失败。
    if (i==L->size) return -1; // 删除失败。

    // 将元素 i 之后的元素往前移一个位置。
    for (j=i; j<L->size; j++) L->elem[j] = L->elem[j+1];

    L->size--; // 更新线性表的元素个数。
    // 如果线性表的内存容量比元素个数多出两段元素,则将内存容量减少一段元素。
    if ((L->capacity-L->size)>=SEGMENT*2) {
    L->elem = (ElemType *) realloc(L->elem,(L->capacity-SEGMENT)*sizeof(ElemType));
    L->capacity -= SEGMENT;
    }
    return i; // 返回删除元素 e 的位置。
    }

    // 将线性表 L 銷毀,释放线性表的内存空间。
    void destroy(List *L) {
    free(L->elem); // 释放线性表的内存空间。
    L->capacity = 0; // 重设线性表的内存空间为 0。
    L->size = 0; // 线性表的元素个数为 0。
    }

    // 将线性表 L 清空。
    void clear(List *L) {
    // 重新分配内存空间。
    L->elem = (ElemType *) realloc(L->elem, (SEGMENT)*sizeof(ElemType));
    L->size = 0; // 重设元素个数为 0。
    L->capacity = SEGMENT; // 重设内存空间。
    }

    // 檢查线性表 L 是否為空表。若是空,返回 1;否则,返回 0。
    int is_empty(List L) {
    return L.size==0; // 若个数为 0,则为空,否则,不是空。
    }

    // 打印线性表元素。
    void printlst(List L) {
    int i; // 循环变量。

    printf("线性表内存容量:%3d 元素 ", L.capacity);
    printf("线性表元素个数:%3d 元素 ", L.size);

    for (i=0; i<L.size; i++){
    printf("%3d ", L.elem[i]); // 打印第 i 个元素。
    if ((i+1)%20==0) printf(" "); // 每行 20 个元素。
    }
    if ((i%20)!=0) printf(" "); // 若不足 20 个元素,打印一个换行。
    printf(" "); // 打印一个换行。 

    }

    3.复习了操作系统的第一二章的内容,并整理了笔记

    (部分笔记如下)

  • 相关阅读:
    crt key转p12, jks p12互转,windows生成jks,
    使用c语言实现在linux下的openssl客户端和服务器端编程
    AES CFB/OFB/ECB/CBC/CTR优缺点
    SSL握手通信详解及linux下c/c++ SSL Socket代码举例
    SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码)
    对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
    Mosquitto服务器的搭建以及SSL/TLS安全通信配置
    openssl详解
    使用 openssl 生成证书
    字符编码的故事:ASCII,GB2312,Unicode,UTF-8,UTF-16
  • 原文地址:https://www.cnblogs.com/mju3197103150/p/12806261.html
Copyright © 2011-2022 走看看