1楼:匿名用户
#include
#include
#include
#definen20
intmain()
printf("\n源表\n");
for(i=0;is[n-1])
{while(1)
{if(s[right_i]\n");
for(i=0;i
设有一元素为整数的线性表l=(a1,a2,a3,…,an),存放在一维数组a[n]中,设计一个算法,以表中an作为参考元素?
2楼:匿名用户
上面是核心**和一个随手写的简单测试,注意看数字15,左边都比15小,右边都比15大。
你的这个题目其实就是快速排序算法的一部分,有兴趣可以去看看快排的原理,我这个函数就是从之前写的快排拿出来小改了一下的。
下面是完整的测试函数,随手写的,可能不太优雅:
#include
usingnamespacestd;
voidhalfsort(int*v,intlow,inthigh,intk)
while(v[i]<=v[mid]&&j!=i)
if(j!=i)else}}
intmain(void)
intk=30;
printf("k=%d,arr[k]=%d\n",k,arr[k]);
halfsort(arr,0,44,k);
for(inti=0;i<45;++i)
return0;}
输入一个正整数n(1
3楼:匿名用户
#include
int main()
for(int i=0;iprintf("%d ",a[i]);
return 0;}
4楼:
|#include
intmain(void)
for(i=n-1;i>=0;scanf("%d",a+i--));//n个数逆序存放
for(i=0;i是不是逆序存放的
printf("\n");
for(i=n-1;i>=0;printf("%d",a[i--]));//现在正序输出
printf("\n");
return0;}
5楼:金色潜鸟
#include
int main()
已知线性表l=(a1,a2,...,an)存放在一维数组a[0..n-1]中,将线性表l就地逆置为l=(an,...,a2,a1),试写出算法.
6楼:匿名用户
算法比**还麻烦
step1:设一首指针一尾指针
setp2:交换收尾指针值
step3:首指针向后移一位,尾向前移一位 若首》=尾 退出 否则转step2
for(i=0,j=n-1;i 7楼:没节操的小秋 我的回答希望可以帮助到你. 对于线性表l=(a1,a2,a3,…ai,…,an),下列说法中正确的是( )。 (1分) a 8楼:一念生 a错误,第一个元素再往前就没有了其他元素了,所以没有直接前驱;最后一个元素再往后就没有其他元素了,所以没有直接后继。 b错误,创建线性表时如果不申请节点内存,那这条链表上就一个元素都没有; c错误,链表中元素可以是1-2-3-4-5,也可以是5-4-6-2-3,没有元素排序的限制 已知线性表(a1,a2,a3, …,an)按顺序存于内存,每个元素都是整数,试设计用最少时间把所有值为负数?c 9楼:热情的晗曦 #include #define max 100 typedef struct node link,*link; link creatlink() /*创建一个顺序表*/ void movelink(link l) /*实施算法移动负数*/ else q--; } } } void putlink(link l) /*输出一个顺序表*/ main() 有一个线性表(a1,a2,...,an),其中n>=2,采用带头结点的单链表存储,头指针为l,每个结点存放线性表中 10楼:水里风 (1)线性表中的元素无序 pnode*p=l; while(p!=null) if(p->data==x)returnp; elsep=p->next; returnnull; (2)线性表中的元素按递增有序 pnode*p=l; while(p!=null) if(p->data==x)returnp; elseif(p->data>x)returnnull; elsep=p->next; returnnull; (3)线性表中的元素按递减有序 pnode*p=l; while(p!=null) if(p->data==x)returnp; elseif(p->datanext; returnnull; 线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储与计算机内。要求完成: 11楼:匿名用户 假设a1,...an存放于数组的a[0]...a[n-1]void f(int a,int n,int x)}//如果找到则将其与后继元素交换 //如果x正好是an,则不交换 if(pos!=-1) }//找不到则将x插入正确位置 else a[middle]=x;}} 12楼:匿名用户 #include #include #include typedef struct line line; void print(line *head); void search(line *head); void insert(line *head,int data); void change(line* q); void search(line *head)q=p; p=p->next; }if(flag==0) insert(head,data); else if(flag==1) change(q); }void change(line* q)void insert(line *head,int data)q=p; p=p->next; }r->next=p; q->next=r; }void print(line *head)}}void main()}} 我有点疑问 第二句话 (2) 若找到将其与后继元素位置交换 他不就把顺序打乱了吗 呵呵 你这个题的逻辑有问题 不过我还是帮你实现了