用VC编程序

来源:百度知道 编辑:UC知道 时间:2024/05/30 12:57:52
1、试编写程序,实现在顺序表(1,2,3,4,5,6,7,8,9)中删除介于4与7之间的元素。

2、试编写程序,实现利用原表的存储空间将线性表(1,2,3,4,5,6,7,8,9)就地逆置为(9,8,7,6,5,4,3,2,1)。(用数组和带表头结点单链表两种存储方法。)

3、分别编写从顺序表和带表头结点的单链表中统计出值为x的元素个数的函数,统计结果由函数值返回。

4、设一个线性表中的元素为正整数或负整数,试编写程序将正整数和负整数分开,使线性表的前面为负整数后面为正整数,不要求对它们排序,但要求尽量减少交换次数。

5、假设线性表中元素的键值为(2,4,6,8,10,12,14,16,18,20)并按递增的顺序存放在数组a[] 中,表中有10个元素,k是要查找的元素的键值,用a[10]做监视哨存放给定值k(k值自己设置)。使用顺序查找思想编写程序查找值为k的元素。

用VC编写好了。

#include <iostream>
using namespace std;

typedef struct node
{
char data;
struct node *next;
}link;

link * get(link *l, int i)
{
link *p;int j=0;
p=l;
while((j<i) && (p->next!=NULL))
{p=p->next;j++;}
if(j==i)
return p;
else
return NULL;
}

link * ins (link *l, char ch,int i)
{ link *p,*s;
p=get(l,i-1);
if(p==NULL)
cout<<"输入有误"<<endl;
else
{
s=(link *)malloc(sizeof(link));
s->data=ch;
s->next=p->next;
p->next=s;
}
return l;
}

link * find(link *l, char ch)
{
link *p; int i=0; int j=0;
p=l;

while(p!=NULL)
{ i++;
if(p->data!=ch)
p=p->next;
else {cout<<"您查找的数据在第"<<i-1<<"个位置."<<endl;
j=1;p=p->next;
}