• 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;
    
        }
    }
  • 相关阅读:
    Java项目xml相关配置
    Jquery的bind跟on绑定事件的区别
    命令操作Mysql数据库
    Jquery实现功能---购物车
    Jquery插件---渐隐轮播
    Jquery制作插件---内容切换
    PCB画板的快捷键
    蓝牙2.0传数据给数码管
    蓝牙2.0传数据给数码管
    共阳极数码管计数器
  • 原文地址:https://www.cnblogs.com/wangzhi/p/3377443.html
Copyright © 2020-2023  润新知