数据结构的题,大神帮看看做的对不对,写出一个顺序存储的升序线性表中插入一个元素,并仍保持有序算法。

2025-04-26 18:41:00
推荐回答(1个)
回答1:

顺序表插入查找什么结点 直接到顺序表表尾插入就行了啊 然后表长加1不就好了 写的好像是顺序链表的 的写法但是又不是链表的顺序表 不伦不类的 不过你的两个值交换的思想还是不错的 鼓励下 但是和这个函数没关系 加油吧

int Sqlist::insert(elemtype e)
{
    data[length] = e;
    length++
    return 1;
}

不好意思 
你的是要按升序插入 确实需要查找结点 但是不用这样 太惨了 也不用交换 直接后移插入位置后的元素 你的代码思路对的 但是插入位置i没找出来 所以不正确

正确代码为:
int Sqlist::insert(elemtype e)
{
    for(int i=length-1;i>=0;i--)
        if(data[i]<=e)
            break;
     for(int j=length;j>i;j++)
         data[j]=data[j-1];
     data[j-1]=e;
     length++;
     
     return 1;
}