删除顺序表第k个元素
答:{ ListNode *p, *q;int a,b;for (a = 0, p = head; a < i; a++,p = p->next){ if (p == null)//结点不够i个则无需删除,直接退出 return;} for (b = 0, q = p; b < k; b++, q = p->next){ if(q == null) //已经删到了表尾,直接退出无需继续删除 ret...
答: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...
答:你的连表第一个结点没初始化,所以链表第一个数都是个那个地址内的值下面图中可以看出你的链表C首地址是0x00382798 里面的值是-858993460 所以输出链表中就会一直有这个值 你再看看,把链表初始化一下
答:一个长度,和一个查找的值。3、此时,就能从零开始到长度减一个个判断。4、此时,可以判断,如果找到了就返回当前下标加一。5、否则就让这个函数返回负一。6、此时,可以在Main函数中配合运行测试。7、输出对于每次删除操作输出一行,如果k不合法(k大于n或者k为0),输出 -1, 否则输出删除的元素。
答:回答:把i+k个元素以后的赋值给第i个以后的元素,这样第i个元素后的k个元素就被覆盖了,达到删除的目的。
答:struct student *del(struct student *head,int i,int k){ struct student *p,*q;int j;p1=head;for(j=0,j<i,j++)p++;p--;for(m=0;mnext=p->next;} 下面是定义结构体 struct student { int a;struct student *next;} 你好,这是我自己弄的,但不知道对不对,光有函数没有主函...
答:第i个元素开始包不包括这个元素? 如果包括,for循环就是从i-1开始,因为数组下标是从0开始的。for循环结束条件应该是数组长度减去K吧.
答:int delete_k(LinkList L,int k,int *e){ int i=0; LinkList p=L; LinkList q=L; while(p || i<k) { p++; i++; } if(!p) return 0; while(p++) q++; LinkList r=q->next; *e=q->data; if(k!=1) { q->data=r-...
答:Li、Cs、 Rb、 K、Ra、Ba、Fr、Sr、 Ca、 Na 、 La、 Pr 、Nd 、Pm、Sm 、Eu、Ac 锂、铯、 铷、 钾、镭、钡、钫、锶、 钙、 钠、 镧、 镨、钕、 钷、钐、铕、 锕、Gd 、Tb 、Am 、Y 、Mg 、Dy、Tm 、Yb、 Lu 、 Ce、 Ho、 Er 、 Sc、 Pu 、Th 、Be 、Np 钆、...
答:答案是第二个,第一个删除指定位序元素的后一个元素,顺序表要移动元素,单链表要查找删除位置,效率差不多;第三个顺序输出前k个元素,效率也差不多;第四个交换元素的值,由于单链表要顺序查找到要交换的元素结点,而顺序表可以直接取相应元素,所以顺序表效率更高;只有第二个,第一个元素后面插入...
网友评论:
燕泉17835056062:
写一个算法,自顺序表中删除从第i个开始的k个元素 -
3799慎龙
: # include #include //#include //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 puts("");return 0; }
燕泉17835056062:
用C语言实现删除环形队列第K个元素 -
3799慎龙
: 楼主你好.我现在假设环形队列一定可以找到第k个元素,如下:void DeleteIndexedNode(DList* thiz, int k){//删除第k个元素 DNode* iter=thiz->first; DNode* pIter; int index;//假设队列从1开始编号 if(!iter)//队列为空,取消删除 return;//若想绕一...
燕泉17835056062:
C++数据结构,写一种算法,从顺序表删除第i个元素开始的第k个元素 -
3799慎龙
: #include <cstring> #include <cassert> #include <iostream> using namespace std;//定义的顺序表类 template <class T> class SqList { private:static const int MAX;int count;T data[MAX]; public: SqList():count(0){ } T& get(int idx){assert(...
燕泉17835056062:
对于顺序存储结构的线性表删除所有值为K的元素
3799慎龙
: 定义结构体: struct node{ int elem; node* next; }; 删除函数:(删除l所指节点,p为l前节点) void delete(node* p,node*l) {p->next=l->next; l=l->next; free(l);} 主要程序:先让p指第一个,l指第2个) for(int i=1;ielem==k){delete(&p,&l);} p=p->next; l=l->next;} 潦草写的 错误有点 边界的时候会有点溢出问题 自己改下吧
燕泉17835056062:
写一算法,从顺序表中删除自第i个元素开始的k个元素 -
3799慎龙
: 要不要把删除元素的顺序也删了(后面的元素前移)?还是归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
燕泉17835056062:
编写一个算法,从顺序表中删除自第i个元素开始的k个元素 -
3799慎龙
: Status DeleteK(SqList &a,int i,int k)//删除线性表a中第i个元素起的k个元素 { if(ia.length) return INFEASIBLE; for(count=1;i+count-1
燕泉17835056062:
设计一个算法,删除一个顺序表中从第i个元素开始的k个元素
3799慎龙
: 如果删除顺序, 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
燕泉17835056062:
数据结构与算法编程:建一个顺序表,将1到9这9个整数存放这个顺序表中,将第K个位置上的元素删除,位置K由键盘输入. -
3799慎龙
: 这题int i,j,x; //elemtype e;L=&sl; //给指针变量赋值printf("please intput the delete position:");scanf("%d",&j);Delete(L,j);listprint(L); }
燕泉17835056062:
用c语言编写算法:已知顺序表L,编写一个函数实现删除L的倒数第k个结点 顺序表结构定义如图 -
3799慎龙
: int delete_K(Sqlist L,int K,int *e) { int i,*p; if(L.lengthK)return 0; p=L.elem + (L.length-K); for(i=L.length-K;i *p=*(p+1); L.length--; return 1; }
燕泉17835056062:
数据结构:从顺序表中删除自第i个结点开始的k个结点,其中k和i的值由用户从键盘输入?
3799慎龙
: void deleteKNode(ListNode *head,int i, int k) { ListNode *p, *q; int a,b; for (a = 0, p = head; a < i; a++,p = p->next) { if (p == null)//结点来不够i个则无自需删除,直接退出 return; } for (b = 0, q = p; b < k; b++, q = p->next) { if(q == null) //已经删到了表知尾,直接退出无需继续删道除 return; p->next = q->next; //删除当前结点并释放 free(q); } }