zoukankan      html  css  js  c++  java
  • 顺序表的使用

    没有什么特别的,只是自己感觉这两个小算法比较特别,让自己知道问题也可以这么考虑

    /********************************************
     * 文件名称:proc_sqlist.c
     * 文件描述:习题练习
     * 文件作者:by Wang.J,in 2013.11.17
     * 文件版本:1.0
     * 修改记录:
    *********************************************/
    #include <stdio.h>
    
    #include "sqlist.h"
    
    /*
     存在一个顺序表,设计一个算法,删除其中所有值等于x的元素.
     要求算法的时间复杂度为O(n),空间复杂度为O(1).
    */
    /*
     方法一:扫描顺序表L,重建一个不包含x值得所有元素的新顺序表
    */
    /*===================================================
     * 函数名称:delnode1
     * 函数功能:使用方法一实现功能
     * 函数参数:sqlist *L   已经存在的顺序表
                elemtype x  参考元素
     * 返 回 值:void
     * 创 建 人:by Wang.J,in 2013.11.17
     * 修改记录:
    ====================================================*/
    void delnode1(sqlist *L, elemtype x)
    {
        int k = 0, i = 0;               //k记录值不等于x的元素个数
    
        for (i = 0; i < L->len; i++) {
            if (x != L->data[i]) {      //元素的值如果不等于x则插入L中
                L->data[k] = L->data[i];
                k++;                    //不等于x的个数+1
            }
        }
    
        L->len = k;                     //新顺序表的长度等于新的元素的个数,尽管后面可能还有元素,但是已经表示为没有了
    }
    
    /*
     方法二:用k记录顺序表中x元素的个数,一边扫描L一遍统计k,并将不为x
     的元素前移k个位置,最后修正L的长度
    */
    
    /*===================================================
     * 函数名称:delnode2
     * 函数功能:使用方法二实现功能
     * 函数参数:sqlist *L   已经存在的顺序表
                elemtype x  参考元素
     * 返 回 值:void
     * 创 建 人:by Wang.J,in 2013.11.17
     * 修改记录:
    ====================================================*/
    void delnode2(sqlist *L, elemtype x)
    {
        int k = 0, i = 0;
    
        for (i = 0; i < L->len; i++) {
            if (x == L->data[i])
                k++;
            else
                L->data[i-k] = L->data[i];
        }
    
        L->len -= k;
    }
  • 相关阅读:
    PID控制心得 2013/2/11
    在LaTeX文档中插入图片的几种常用的方法
    学习总结 2013/2/11
    eclipse 中引用其他项目及项目打包
    随笔2013/2/13
    随笔2013/2/19
    【转载】Latex对中文的支持 模版
    Latex 第二个程序
    Fences 桌面图标整理收纳箱
    消除“星期一综合症” 大前研一的周末时间分配术
  • 原文地址:https://www.cnblogs.com/wangluojisuan/p/3428028.html
Copyright © 2011-2022 走看看