今天抽了点时间,复习了一下链表,总结了建立,删除,插入,查找的操作方法。
源码如下:
<!---->#include<iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*Llist;
//方法声明
LNode *creat_head();//创建一个空表
void creat_list(LNode *,int);//创建一个长度为n的线性链表
void insert_list(LNode *,int,int );//插入一个元素
int delete_list(LNode *,int);//删除一个元素
//创建一个空链表
LNode *creat_head()
{
LNode *p;
p=(Llist)malloc(sizeof(LNode));
p->next=NULL;
return(p);
}
//创建一个长度为n的线性链表
void creat_list(LNode *head,int n)
{
LNode *p,*q;
int i;
p=head;
for(i=1;i<=n;i++)
{
q=(Llist)malloc(sizeof(LNode));
cout<<"data:";
cin>>q->data;
q->next=NULL;
p->next=q;
p =q;
}
}
//插入一个元素
void insert_list(LNode *head,int x,int i )
{
int j=0;
LNode *p,*s;
p=head;
while((p!=NULL)&&(j<i-1))
{
p=p->next;
j++;
}
if(p==NULL)
exit(0);
s=(Llist)malloc(sizeof(LNode));
s->data=x;
s->next=p->next;
p->next=s;
}
//删除一个元素
int delete_list(LNode *head,int i)
{
LNode *p,*q;
int j=0;
int x;
p=head;
while((p!=NULL)&&(j<i-1))
{
p=p->next;
j++;
}
if(p==NULL)
exit(0);
q=p->next;
p->next=q->next;
x=q->data;
delete(q);
return(x);
}
//输出
void Print(LNode *head,LNode *p){
for(p=head->next;p!=NULL;)
{
cout<<p->data<<endl;
p=p->next;
}
}
//按序号查找
int Find(LNode *head,LNode *p,int i){
int j=0;
int k;
for(p=head->next;p!=NULL;){
j++;
if(i==j)
k=p->data;
p=p->next;
}
return k;
}
//主函数
int main()
{
LNode *head,*p;
int find;
int n;
int x,i;
int b;
int clrscr();
head=creat_head();
cout<<"请输入链表长:"<<endl;
cout<<"n=";
cin>>n;
cout<<"请输入数值:"<<endl;
creat_list(head,n);
cout<<"您输入的链表为:"<<endl;
Print(head,p);
cout<<"\n请输入您要插入的数:\n";
cout<<"x=";
cin>>x;
cout<<"\n请输入您要插入的位置:\n";
cout<<"i=";
cin>>i;
insert_list(head,x,i);
cout<<"您输入的链表为:"<<endl;
Print(head,p);
cout<<"\n请输入您要删除的位置:\n";
cout<<"i=";
cin>>i;
b=delete_list(head,i);
cout<<"删除后的链表为:"<<endl;
Print(head,p);
cout<<"请输入您要查找的位置:"<<endl;
cin>>find;
cout<<Find(head,p,find)<<endl;
cout<<"请输入您要查找的位置:"<<endl;
cin>>find;
cout<<Find(head,p,find)<<endl;
cout<<"请输入您要查找的位置:"<<endl;
cin>>find;
cout<<Find(head,p,find)<<endl;
return 0;
}
有点少,将就着看吧。转载注明:www.cnblogs.com/shiyangxt
分享到:
相关推荐
"小甲鱼数据结构与算法课件+源码.zip" 是一个包含小甲鱼关于数据结构与算法课程的课件和源码的压缩包,旨在帮助初学者深入理解和掌握这些关键概念。 首先,数据结构是组织和存储数据的方式,它决定了我们如何在...
本资源包含两部分:一本名为“数据结构与算法(JAVA语言版)”的PDF教程和一个“源码.zip”压缩包,提供了相关的Java实现。 1. 数据结构:数据结构是组织和存储数据的方式,它直接影响到算法的效率。常见的数据结构...
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和...
通过阅读和理解这样的源码,开发者可以深入学习数据结构的基础知识,提高编程技能,为解决更复杂的算法和问题奠定坚实基础。如果在使用过程中遇到问题,作者也提供了及时的帮助,这是一个很好的学习资源。
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。小甲鱼的数据结构课程旨在帮助初学者和进阶者深入理解这些核心概念,并通过实际的源代码实现来提升编程能力。 在数据结构中,我们研究如何...
《数据结构与算法分析C++语言描述第四版》是一本深度探讨数据结构和算法的经典教材。这本书由Mark Allen Weiss撰写,旨在帮助读者理解和掌握如何在C++编程环境中有效地设计和实现数据结构及算法。第四版更新了内容,...
双向链表是一种重要的线性数据结构,与单向链表相比,它提供了更灵活的访问和操作方式。本文将深入探讨双向链表的概念、结构以及其源码实现。 双向链表的每个节点不仅包含数据元素,还包含两个指针,一个指向前一个...
根据提供的文件信息,这里主要关注的是“C++数据结构与算法(第4版)”这一主题,虽然实际内容并未给出具体章节或知识点,但我们可以基于标题、描述以及部分已知内容来推测书中可能涵盖的关键知识点。 ### C++数据...
在计算机科学和编程领域,理解并能够实现单向链表的源码是至关重要的,因为它是构建更复杂数据结构(如双向链表、循环链表等)的基础。 在单向链表中,每个节点有两个部分:数据域和指针域。数据域存储实际的数据,...
这本书深入浅出地介绍了各种数据结构及其对应的算法,并提供了源码实现,对学习者来说极具价值。 在“数据结构(严蔚敏)算法源码及演示系统”中,你将找到以下关键知识点: 1. **基本数据结构**:包括数组、链表、...
数据结构与算法(Python) 一、引入概念 1-01算法引入 1-02 时间复杂度与大O表示法 1-03-最坏时间复杂度与计算规则 1-04-常见时间复杂度与大小关系 1-05-代码执行时间测量模块 1-06-Python列表类型不同操作的...
此为数据结构与算法(C#语言描述) 一书的部分源码 本书是在.NET框架下用C#语言实现数据结构和算法的第一本全面的参考书。本书介绍的方法非常实用,采用了时间测试而非大O表示法来分析算法性能。内容涵盖了数据结构...
项目标题:Python数据结构与算法源码集合 项目概述: 本项目采用Python语言编写,包含了丰富的数据结构与算法实现。全套源码共40个文件,其中39个为Python源文件(.py),以及1个Git忽略配置文件(.gitignore),...
这份《数据结构与算法课程设计与实验实例源码》是学习和深入理解这些概念的理想资源。以下将详细介绍其中可能涵盖的知识点,并提供一些相关背景和应用。 1. **链表**:在源码中可能会包含单链表、双链表、循环链表...
"数据结构和算法分析源码" 包含了链表、排序、树和图等多种重要数据结构及算法的实现,这些都是软件开发中的重要工具。 1. **链表**: 链表是一种动态数据结构,不同于数组,它在内存中不是连续存储的。链表由一...
"小甲鱼数据结构与算法课件与源码.rar" 提供了学习这一主题的宝贵资源,包括配套的源码和课件,使得理论与实践相结合,有助于深入理解。 1. **数据结构**:数据结构是组织和存储数据的方式,它影响到数据的访问效率...
《数据结构》算法实现与分析高一凡(第二版)是一本深入探讨数据结构与算法的书籍,由知名计算机教育专家高一凡编著。这本书是第二版,相较于第一版,可能包含了更多更新的内容和实践案例,以适应不断发展的信息技术...
《数据结构》是一门至关重要的...这个压缩包中的源代码实例,对于理解数据结构和算法的实际应用至关重要。通过阅读、调试和运行这些代码,你可以加深对这些概念的理解,提高编程能力,并为未来的软件开发打下坚实基础。
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。C++作为一种强大的、面向对象的编程语言,常被用于实现复杂的数据结构和算法。在《数据结构与算法——C++版(第3版)》中,作者深入浅出地介绍...