顺序表的第i个元素算法
答:scanf("%d",a[j]); //输入数 fun(*a,j,i,k); //调用fun函数 for(j=0;j++;j<(j-k)) //打印剩余的数 printf("%4d",a[j]);} void fun(int a[] ,int j, int i, int k ){ for(;i++;i+k<j)a[i]=a[i+k];} fun函数的作用就是删除k个数,999,666,66...
答:【答案】:(1)数据结构 采用顺序表定义。(2)思路 遍历整个表,找到符合条件的元素x,求出其前驱和后继的下标。注意第一个和最后一个元素。(3)算法 int SearchxPN_seq(PSeqList palist,DataType x,int*pprev,int*pnext){ /*算法结束后,*pprev和*pnext中分别存放顺序表中第一个值为x的元素的...
答:要不要把删除元素的顺序也删了(后面的元素前移)?还是归0?如果删除顺序,n=0 指针在第一元素上 循环:n=n+1 如果 n>=i and n<=i+k 删除 否则 goto next 如果不删除顺序 n=0 指针在第一元素上 循环:n=n+1 如果 n>=i and n<=i+k 删除 goto next 否则 goto next ...
答:数据结构。listDelete(&L,i,&e)Status ListDelete(List &L,int I,ElemType &e){ if ((i<1)||(i>L.length))return Error;p=*(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p)(p-1)=*p;- -L.length;return Ok;}//ListDelete ...
答:int insertList(List * L, int n, List *a){ List *list = L;int i;for(i = 0; i < n; i++){ if(list->next == NULL){ printf("插入失败\n");return 0;} list->next = list;} list->next = a;return 1;}
答:int i;int j;T elem = data[idx];for(i = idx; i < count - 1; i++)data[i] = data[i + 1];--count;return elem;} T remove(int i, int k) //删除从下标i开始的第k个元素 { return remove(i + k - 1);} SqList<T>& push(T elem){ return insert(count, elem);...
答:④将数据元素e插入到第i个位置之前。⑤顺序表长度增1。(2)在顺序表L中第i个位置之前插入数据元素e的算法。(4)顺序表插入算法的时间复杂度分析。假设线性表中含有n个数据元素,在进行插入操作时,算法2.2的时间主要花费在for循环语句中的数据元素后移语句上,该语句的执行次数(即移动元素的次数)...
答:顺序表吗,先找到第i个位置,然后删除,之后把i+1以后的都向前移1位就行了,其实要做这种修改操作的用链表比较好~
答:顺序存储是先根据数据量的需要先分配好存储空间的,相当于先给数据分好了带编号的座位,所以可以直接找到。而链式是不事先定好存储空间的,就是第一个数据好了再给存第二个,且有个指针区指向下个数据的位置,所以要想找到第几个数据都要从头来 ...
答:include <stdio.h> include<math.h> //#include<iostream> //using namespace std;int main(){ int i,k,j;int a[10]={1,2,3,4,5,6,7,8,9,10};scanf("%d%d",&i,&k);for(;i+k<10;i++)a[i]=a[i+k];for(j=0;j<i;j++)printf("%d ",a[j]);puts("");return ...
网友评论:
裘利18214749358:
已知一个顺序表L,打印输出顺序表第i个元素的值,写出完整的算法 -
2380闵类
: locate(sqlistL,int i ,int&x){ if(i<||L.length) return error; x=l.elem[i-1]; return OK;}
裘利18214749358:
设有一顺序表l,请编写一个算法求第i个元素的后继结点3的值 -
2380闵类
: struct list *p, *q, *s, *head; p = head; while(p != NULL) {if(x > p->data) { q = p;p = p->next; } else { s = (struct list*)malloc(sizeof(struct list)); s->data = x; q->next = s; s->next = p; } } 提问者评价 谢谢
裘利18214749358:
设计一个算法,将顺序表重新排列成以第1个元素为界的两部分,前一部分元素的值都小于它,后一部分元素..... -
2380闵类
: 你可以用一个简单的例子按照上面的思想试试;table(index) = table(1);table(1) = temp;table(index) = table(k);table(k) = temp; k++; k<=row)if (key 大于 第k个元素)index = index + 1% 实现这个算法的代码 i = 1; j = 顺序表长度;end end % 将...
裘利18214749358:
怎么在顺序表查找删除元素 -
2380闵类
: /* 线性表的运用(1)创建顺序表(2)获取第i个元素(3)查找元素x(4)在某一位置插入数据(5)删除某一位置数据在主函数中调用上述操作. */ #include <stdio.h> #include<stdlib.h> #define maxsize 50 typedef struct { int data[maxsize]; ...
裘利18214749358:
设计一个算法,求顺序表中大于x的元素有几个? -
2380闵类
: 这个算法只要从顺序表的第一个元素开始,直到顺序表的最后一个元素为止,进行逐个元素的比较,如果找到一个大于x的元素计数器的值就加一,最后输出计数器中的值就表示顺序表从大于x的元素有几个.
裘利18214749358:
写一算法,从顺序表中删除自第i个元素开始的k个元素 -
2380闵类
: 要不要把删除元素的顺序也删了(后面的元素前移)?还是归0? 如果删除顺序, n=0 指针在第一元素上 循环:n=n+1如果 n>=i and n<=i+k删除否则 goto next 如果不删除顺序 n=0 指针在第一元素上 循环:n=n+1如果 n>=i and n<=i+k删除goto next否则 goto next
裘利18214749358:
编写在顺序表上删除第i个元素的算法,要求能够判断删除位置是否正确,返回值为逻辑值,表示删除是否成功 -
2380闵类
: package xxxxx(这里改成你的包名)/** * 顺序表的实现 * @author check(这里改成你的codename,不让老师看出你是抄的作业) * @param <E> */ public class ArrayList<E> { private Object[] data = null; // data: 用来保存此线性表数据的数组 ...
裘利18214749358:
顺序表的基本操作 -
2380闵类
: Status InitList(SqList &L) // 算法2.3 { // 操作结果:构造一个空的顺序线性表 L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW); // 存储分配失败 L.length=0; // 空表长度为0 L.listsize=LIST_INIT_SIZE; ...
裘利18214749358:
已知现有一顺序表L(a1,a2,…,an),若要将其第i个位置上的元素删除,请写出算法的具体步骤.用语言叙述 -
2380闵类
:[答案] 数据结构. listDelete(&L,i,&e) Status ListDelete(List &L,int I,ElemType &e) { if ((iL.length))return Error; p=*(L.elem[i-1]); e=*p; q=L.elem+L.length-1; for(++p;p
裘利18214749358:
顺序表的删除算法 -
2380闵类
: 单链表的删除操作是指删除第i个结点,返回被删除结点的值.删除操作也需要从头引用开始遍历单链表,直到找到第i个位置的结点.如果i为1,则要删除第一个结点,则需要把该结点的直接后继结点的地址赋给头引用.对于其它结点,由于要...