设有一元素为整数的线性表L(a1,a2,a3an

2020-11-18 11:36:10 字数 3796 阅读 8579

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) 若找到将其与后继元素位置交换

他不就把顺序打乱了吗 呵呵 你这个题的逻辑有问题 不过我还是帮你实现了