账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    表尾元素位置为什么是这样获取的?
    30
    0

    表尾元素位置为什么是这样获取的?

    #define OK 1
    #define ERROR 0
    
    typedef int ElemType;
    
    typedef struct
    {
        ElemType* elem;
        int length;
        int listsize;
    } SqList;
    
    int ListDelete(SqList* L, int i, ElemType* e)
    {
        int j;
        ElemType *p, *q;
        if (i < 1 || i >= L->length)
        {
            return ERROR;
        }
    
        p = &(*L).elem[i - 1]; //p为被删除元素的位置
        *e = *p;
        q = (*L).elem + (*L).length - 1; //表尾元素位置(为毛?)
    
        for (++p; p <= q; ++p)
        {
            *(p - 1) = *p; //左移
        }
        (*L).length--;
    
        return OK;
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 月宫中人 普通会员 1楼

      在计算机科学中,特别是在处理数组、列表、链表等线性数据结构时,获取表尾元素的位置通常有两种方式:

      1. 索引表示法:对于数组或列表,表尾元素的位置是通过索引来表示的。在大多数编程语言中(如Python、Java、C++等),索引是从0开始计数的,因此,如果一个数组或列表的长度为n,那么表尾元素的位置就是n-1。例如,在Python中,要获取列表lst的最后一个元素,可以使用lst[n-1]

      2. 链表表示法:对于链表,由于其特殊的数据结构(每个节点包含数据和指向下一个节点的指针),获取表尾元素的位置通常需要从头节点开始遍历,直到找到最后一个指向null的节点。这个节点即为表尾节点,无法直接通过索引获取。

      这两种方式都是基于数据结构的设计和实现原理来获取表尾元素位置的。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部