- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构C语言版算法大全
1) 插入操作
在顺序表L的第i (1=L.length+1)个位置插入新元素e。如果i的输入不合法,则返回false,表示插入失败;否则,将顺序表的第i个元素以及其后的元素右移一个位置,腾出一个空位置插入新元素e,顺序表长度增加1,插入成功,返回true。
bool ListInsert(SqList L, int i, ElemType e){
//本算法实现将元素e插入到顺序表L中第i个位置
if ( i1 || iL.length+1 )
return false; // 判断i的范围是否有效
if(L.length=MaxSize)
return false; // 当前存储空间已满,不能插入
for (int j =L.length; j =i; j--) // 将第i个位置及之后的元素后移
L.data[j]=L.data[j-l];
L.data[i-1]=e; //在位置i处放入e
L.length++; //线性表长度加1
return true;
}
2) 删除操作
删除顺序表L中第i (1=i=L.length)个位置的元素,成功则返回true,否则返回false,并将被删除的元素用引用变量e返回。
HYPERLINK /cpp/html/2658.html 复制 HYPERLINK /cpp/html/2658.html 纯文本 HYPERLINK /cpp/html/2658.html 新窗口
bool ListDelete(SqList L,int i, int e){
//本算法实现删除顺序表L中第i个位置的元素
if(i1 || iL.length)
return false; // 判断i的范围是否有效
e=L.data[i-1] ; // 将被删除的元素赋值给e
for (int j=i; jL.length; j++) //将第i个位置之后的元素前移
L.data[j-1]=L.data[j];
L.length--; //线性表长度减1
return true;
}
3) 按值查找(顺序查找)
在顺序表L中查找第一个元素值等于e的元素,并返回其下标。
int LocateElem(SqList L, ElemType e){
//本算法实现查找顺序表中值为e的元素,如果查找成功,返回元素位序,否则返回0
int i;
for(i=0;iL.length;i++)
if(L.data[i]==e)
return i+1; // 下标为i的元素值等于e,返回其位号i+1
return 0; //退出循环,说明查找失败
}
单链表的定义
typedef struct LNode{ //定义单链表结点类型
ElemType data; //数据域
struct LNode *next; //指针域
}LNode, *LinkList;
采用头插法建立单链表
该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示。
图2-4? 头插法建立单链表
头插法建立单链表的算法如下:
LinkList CreatList1(LinkList L){
//从表尾到表头逆向建立单链表L,每次均在头结点之后插入元素
LNode *s;int x;
L=(LinkList)malloc(sizeof(LNode)); //创建头结点
L-next=NULL; //初始为空链表
scanf(%d, x); //输入结点的值
while(x!=9999) { //输入 9999 表示结束
s=(LNode*)malloc(sizeof(LNode) ); //创建新结点
s-data=x;
s-next=L-next; //重点(如果使用头插法的话)
L-next=s; //将新结点插入表中,L为头指针
scanf (%d, x);
} //while 结束
return L;
}
采用尾插法建立单链表
头插法建立单链表的算法虽然简单,但生成的链表中结点的次序和输入数据的顺序不一致。若希望两者次序一致,可采用尾插法。该方法是将新结点插入到当前链表的表尾上
您可能关注的文档
最近下载
- 农业推广学复习思考题答案.doc VIP
- 苏S13-2022 预制混凝土排水检查井.docx VIP
- 河南省南阳市六校2021-2022学年高一上学期第一次联合测试地理试题.pdf VIP
- 微早读 高一语文激情早读(必修下)第5周第3次(编辑版).docx VIP
- 人力资源管理专科毕业论文模板.docx VIP
- 衰老相关心脑血管疾病的机制与抗衰老干预策略.pptx
- 氢燃料电池的电力转换效率.docx VIP
- 应征入伍服兵役高等学校学生国家教育资助申请表1(样表).docx
- 医学生乙型病毒性肝炎防控知识和乙型病毒性肝炎疫苗接种意愿调查问卷.doc VIP
- 摄影与摄像技艺基础全套教学课件.pptx
文档评论(0)