c语言编程顺序查找法,建立顺序表,实现顺序表的遍历,在顺序表中查找关键字为e的元素(c语言编写)...

满意答案

00e27ab806e4881f8254fe7ae8741834.png

qqea12345

推荐于 2017.11.24

00e27ab806e4881f8254fe7ae8741834.png

采纳率:45%    等级:7

已帮助:1062人

楼主我大二 也刚上数据结构耶

这是我上实验课的时候用链表写的

还没交老师看  功能还差一个 可能还bug

楼主你看看~~/*1.编写程序实现顺序表的下列基本操作:

(1)初始化顺序表La--模板已提供参考

(2)将La置为空表

(3)销毁La

(4)在La中插入一个新的元素--模板已提供参考

(5)删除La中的某一元素--模板已提供参考

(6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0

(7)打印输出La中的元素值--模板已提供参考*/

#include

#include

#include

using namespace std;

template//定义元素

struct lian

{

type a;

struct lian *next;

};

template//定义表

class biao

{

public:

lian*tou;//头指针

lian*p;//尾部指针

lian*d;//随机指针

int n;//当前节数

void ChuShiHua(type M)//初始化

{

p=tou=(lian*)malloc(sizeof(lian));

p->a=M;

tou->next=NULL;

n=1;

}

void XiaoHui()//销毁

{

int i;

d=tou;

for(i=1;i<=n;++i)

{

d=tou;

tou=tou->next;

free(d);

}

d=p=tou=NULL;

n=0;

}

bool ChaRu(type M)//尾部元素插入 成功返回true 失败返回false

{

p->next=(lian*)malloc(sizeof(lian));

p->next->a=M;

if(!p)

{

cout<

return false;

}

++n;

p=p->next;

p->next=NULL;

return true;

}

bool ChaRu(type M,int x)//随机位置元素插入 成功返回true 失败返回false

{

if(x>n)

{

cout<

return false;

}

int i;

lian*cha=(lian*)malloc(sizeof(lian));

if(!cha)

{

cout<

return false;

}

cha->a=M;

for(d=tou,i=1;i

d=d->next;

cha->next=d->next;

d->next=cha;

++n;

return true;

}

void ShanChu(int x)//删除元素 不能删除表头

{

if(x>n||x==1)

{

cout<

return;

}

int i;

lian*del;

for(d=tou,i=1;i

d=d->next;

del=d->next;

d->next=del->next;

free(del);

del=NULL;

--n;

}

int ZhaoYuanShu(type a)//查找

{

int i;

for(d=tou,i=1;i<=n;++i,d=d->next)

{

if(d->a==a)

return i;

}

return 0;

}

void ShuChu()//输出

{

for(d=tou;d!=NULL;d=d->next)

{

cout<a<

}

cout<

}

};追问: 运行不了,还有我们学的怎么和你们不一样,我们好像简单一点

追答:肯定运行不了啊 这就是个类  没有主函数 ~~下面是主函数 粘贴在上面代码下面实现你的两个功能  遍历输出和查找楼主我们的书是紫色封面的那种 不过这个不是按教材搞的 老师要我们用模版实现 才写得复杂  可以直接写整形类

int main()

{

int i;

biao x;//定义一个int链表

x.ChuShiHua(1);//先初始化 设置表头数据为1

for(i=1;i<10;x.ChaRu(++i));//先顺序插2~10

x.ShuChu();//遍历输出

i=5; //设置i为5 下面找5

cout<

x.ChaRu(11,3);//把11插到第3位

x.ShuChu();//遍历输出

i=11;//设置i为11 下面找11

cout<

x.XiaoHui();//最后销毁

return 0;

}

追问: 我们学的是不是不一样,我们没有模版。还有我们老师教的特别浅显作业却特别难

追问: 我们还没学链表

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值