c语言编程顺序查找法,建立顺序表,实现顺序表的遍历,在顺序表中查找关键字为e的元素(c语言编写)...
满意答案
qqea12345
推荐于 2017.11.24
采纳率: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分享举报
c语言编程顺序查找法,建立顺序表,实现顺序表的遍历,在顺序表中查找关键字为e的元素(c语言编写)...相关推荐
- 写几个函数: ①输入10个职工的姓名和职工号; ②按职工号由小到大顺序排序,姓名顺序也随之调整; ③要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。
写几个函数: ①输入10个职工的姓名和职工号: ②按职工号由小到大顺序排序,姓名顺序也随之调整: ③要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名. #i ...
- 王爽 汇编语言第三版 监测点9.2 监测点9.3 补全编程,利用jcxz指令,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,
补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中. 而且,截图中给出了是字节.是8位,占通用寄存器的一半空间!区分出CL,CH! 为了区分 ...
- c语言找出一个数组中出现次数最多的那个元素,c语言找出数组中出现次数最多地那个元素...
matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数 首先是胞矩阵中的序列问题,不妨假设AA{1}是一个多行两列的数据,AA{2}同例.程序如下clcclearallAA{1}=[12;2 ...
- 力扣(LeetCode)215. 数组中的第K个最大元素(C语言)
一.环境说明 本文是 LeetCode 215题 : 数组中的第K个最大元素,使用c语言实现. 快速选择.查找无序数组的利器! 测试环境:Visual Studio 2019. 二.代码展示 void ...
- c语言编程用进退法求搜索区间代码,用c对函数进行优化的问题
//多维无约束优化软件设计#include #include #include double det=1e-5; //计算精度double det1=1e-3; //梯度判断精度double ak=3 ...
- C语言编程用递归法求
7,用递归法求: (x2!)+(xxx3!)+(5个x相乘5!)+-+((2n-2)个x相乘(2n-2)!)当N为某值是上式为几?(到第n项,n和x的值有键盘输入.) #include<stdi ...
- 艾宾浩斯c语言编程,艾宾浩斯记忆法
1. 初记单词时需要记忆的内容: a) 单词外观, b) 单词的中文释义, c) 单词的记忆法 2. 每个list的具体背诵过程(每个list按12页,每页10个单词计): a) 背完一页(大约5分钟 ...
- 最短寻道时间算法c语言,如果北京到上海有千亿条路,寻找最短路径用C语言编程用枚举法没效率,应该用什么算法才能高效解决它?...
满意答案 l3324147 2013.12.02 采纳率:42% 等级:12 已帮助:6324人 迪杰斯特拉(Dijkstra)算法求图的单源最短路径 template void Dijkstr ...
- c++语言编程希尔排序法排序,经典四讲贯通C++排序之二 希尔排序
我们都知道C++排序方法中,有四种常用方法插入排序.希尔排序.交换排序以及选择排序.上一篇文章,我们介绍了插入排序,今天我们介绍另一种排序方法――希尔排序.(本系列文章统一 测试程序) 希尔排序 前面 ...
最新文章
- UIAlertView
- buuoj-crypto 1
- BugkuCTF-Misc:Linux2
- BZOJ3239 Discrete Logging
- 【渝粤教育】广东开放大学 社会调查与方法 形成性考核 (35)
- 【转】刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK等)以及全角、半角、CJK
- Android 开源框架选择
- 数据仓库的ETL、OLAP和BI应用
- JeffreyLynny版面,开版第一篇!!!
- win10开始菜单应用图标丢失
- 程序员 写作_如何经常写作可以使您成为更好的程序员
- 线性代数——线性方程组和矩阵(Linear and Matrices)
- 正整数变成英文输出c语言,C语言,输入一个正整数,然后从个位开始一次输出每一位数字对应的英文字母...
- 为UIView绘制单边的boder
- 3.2Abstraction data type
- 预装Vista的HP华硕笔记本如何安装WinXP
- 计算机专业硕士毕业论文摘要,湖北计算机专业硕士毕业论文英文摘要,经济学专业本科毕业论文...
- 微信第三方授权登录并在h5中发起支付
- R语言求解 常微分方程 绘制洛伦兹系统
- 【回忆 总结】我的大学四年