kwrl.net
当前位置:首页 >> 数据结构 顺序表中插入和删除元素的算法,顺序栈中... >>

数据结构 顺序表中插入和删除元素的算法,顺序栈中...

//顺序表的插入 void Insert(int i, int item) { if (length >= MaxSize) { cerr

假设表长为n 插入n/2 删除(n-1)/2 具体的移动次数取决于表长n和位置i 看到发帖已经很远了,但是可能也会有人有疑问

现在的学生是怎么了 这么简单的问题还不会,先对顺序表的元素进行排序,然后比较有重复则删除,算了我还是给你贴下代码吧 #include //删除一列数中重复的数字使之只保留一个 #define N 6 void delete(int a[],int j) { int i; for(i=j;i

#include #include #define N 10 //顺序表的最大容量 int length=0; //顺序表的当前元素个数 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define LIST_INIT_SIZE 100//线性表存储...

由于一共有51 个元素,顺序表, 若是平均要移动则个数为n/2. 插入末尾,移动0个元素,插入表首移n个元素.

// 将顺序表第i-1个元素至最后一个元素全部向后移动一位for(j=L->last; j>=i-1; j--) L->data[j+1] = L->data[j]// 将新元素x插入到原第i-1个元素的位置L->data[i-1] = x;// 更新顺序表长度L->last++;

1)初始化指针p和q,分别指向链表中相邻的两个元素; 2)当p->next不为空时,做如下处理: ①若相邻两元素不相等时,p和q都向后推一步; ②否则,当相邻元素相等时,删除多余元素。 【算法源代码】 void Delete_Equal(LinkList *L) { p=(*L)->next...

插入时: 假设在第i个新元素前插入一个新元素的概率喂1/n+1,即在表任何位置插入元素的概率是相等的,可算平均移动次数 T=1/(n+1)乘以}{i从1到n+1求积分(n-i+1)}=n/2; 删除时: 方法同上,最后可得结果喂n-1/2

#include int main() {int a[20]={23,14,22,45,13,90,45,67,83,84,56,44,22,45}; int n=14,i,j,t,e; printf("原有的数据:\n"); for(i=0;i

最少的是0个(插入在最后或删除最后一个) 最多的是N个(插入在最前面或删除最前面一个) 随机的位置当然是在0——N之间了,当然平均值就是(0+1+2+3+.....+(n-1)+n)/n=n/2

网站首页 | 网站地图
All rights reserved Powered by www.kwrl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com