zoukankan      html  css  js  c++  java
  • C语言数组删除增加一个元素

    malloc,realloc,calloc一直很头疼,这次笔试题需要在数组后重新分配新的空间的代码是:

    //删除函数,删除ptr中的ptr[in]元素,n是数组原来的长度。
    void rmv(int *ptr,int in,const unsigned int n)
    {
       unsigned int i;
       for (i=in; i<n-1; i++) {
       *(ptr+i)=*(ptr+i+1);
       }
       realloc(ptr,sizeof(int)*(n-1));
    }
    
    -----------------------------------------------
    
    //插入函数,在整形数组ptr中的ptr[in]之前插入x,n是原数组的长度
    void rin(int *ptr,int in,int x,const unsigned int n)
    {
     unsigned int i;
     realloc(ptr,sizeof(int)*(n+1));
     for (i=n; i>in; i--) {
      *(ptr+i)=*(ptr+i-1);
     }
     ptr[in]=x;
    }
    
    //需要包含stdlib.h头文件。

    malloc分配空间之后需要free掉,以后得记住了。

    附带删除一个单向链表的最中间元素,不能使用两次循环。

    void delMiddle(link *head)
    {
        if(head == NULL)
               return;
        else if(head->next == NULL)
        {
                delete head;
                return;
        }
        else
        {
                link *low = head;
                link *fast = head->next;
                while(fast != NULL && fast->next != NULL)
                {   
                           fast = fast->next->next;
                           if(fast == NULL)
                                        break;
                           low = low->next;
                }
                link *temp = low->next;
                low->next = low->next->next;
                delete temp;
    
        }
    }
  • 相关阅读:
    react 性能优化
    JS获取当前网页大小以及屏幕分辨率等
    创建对象的6种方式总结
    版本号规则
    JS事件模型
    浅谈虚拟DOM
    浏览器的回流与重绘
    JavaScript预编译
    canvas学习笔记
    java、tomcat安装
  • 原文地址:https://www.cnblogs.com/wangzhi/p/3377443.html
Copyright © 2011-2022 走看看