今天抽了点时间,复习了一下链表,总结了建立,删除,插入,查找的操作方法。
源码如下:
<!---->#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
分享到:
相关推荐
《数据结构与算法分析——C++语言描述》第三版是一本广泛使用的教材,它深入浅出地讲解了数据结构和算法的基础知识,并提供了源码供学习者实践。 在C++中,数据结构主要包括数组、链表、栈、队列、树(如二叉树、...
"小甲鱼数据结构与算法课件+源码.zip" 是一个包含小甲鱼关于数据结构与算法课程的课件和源码的压缩包,旨在帮助初学者深入理解和掌握这些关键概念。 首先,数据结构是组织和存储数据的方式,它决定了我们如何在...
本资源包含两部分:一本名为“数据结构与算法(JAVA语言版)”的PDF教程和一个“源码.zip”压缩包,提供了相关的Java实现。 1. 数据结构:数据结构是组织和存储数据的方式,它直接影响到算法的效率。常见的数据结构...
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和...
《数据结构与算法分析——C++描述》是计算机科学领域一本经典的教材,主要涵盖了数据结构和算法的基础理论及其在C++编程语言中的实现。这本书的第三版提供了更现代的编程范式,包括模板和STL(Standard Template ...
数据结构与算法是计算机科学的基础,对于理解和解决复杂问题至关重要。C#是一种现代、面向对象的编程语言,广泛应用于开发Windows平台的应用程序,尤其是与.NET框架结合时,它提供了丰富的库支持和高效的性能。本...
通过阅读和理解这样的源码,开发者可以深入学习数据结构的基础知识,提高编程技能,为解决更复杂的算法和问题奠定坚实基础。如果在使用过程中遇到问题,作者也提供了及时的帮助,这是一个很好的学习资源。
这本书深入浅出地介绍了各种数据结构(如数组、链表、树、图)以及算法(排序、查找、图算法等)的设计与分析。源码文件包含了书中所有示例程序,供读者实践和学习。 1. 数据结构: - 数组:基本的数据组织形式,...
双向链表是一种重要的线性数据结构,与单向链表相比,它提供了更灵活的访问和操作方式。本文将深入探讨双向链表的概念、结构以及其源码实现。 双向链表的每个节点不仅包含数据元素,还包含两个指针,一个指向前一个...
《数据结构与算法分析C++语言描述第四版》是一本深度探讨数据结构和算法的经典教材。这本书由Mark Allen Weiss撰写,旨在帮助读者理解和掌握如何在C++编程环境中有效地设计和实现数据结构及算法。第四版更新了内容,...
《数据结构与算法分析》是计算机科学领域的一本经典著作,尤其在Java版本中,它深入探讨了如何在Java编程语言中实现各种数据结构和算法。这本书不仅提供了理论知识,还通过提供源代码实例,帮助读者更好地理解和应用...
《数据结构与算法分析:C语言描述(原书第2版)部分习题答案源码》是一份关于数据结构和算法的重要学习资源,尤其适合正在学习C语言描述数据结构与算法的程序员或计算机科学学生。这份资源包含了书中的大部分课后习题...
《数据结构与算法分析C++描述_第三版》是一本深度探讨数据结构和算法的权威书籍,主要针对C++编程语言。这本书的核心在于提供清晰、深入的解释,帮助读者理解和实现各种常用的数据结构(如数组、链表、树、图等)...
在计算机科学和编程领域,理解并能够实现单向链表的源码是至关重要的,因为它是构建更复杂数据结构(如双向链表、循环链表等)的基础。 在单向链表中,每个节点有两个部分:数据域和指针域。数据域存储实际的数据,...
这本书深入浅出地介绍了各种数据结构及其对应的算法,并提供了源码实现,对学习者来说极具价值。 在“数据结构(严蔚敏)算法源码及演示系统”中,你将找到以下关键知识点: 1. **基本数据结构**:包括数组、链表、...
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。小甲鱼的数据结构课程旨在帮助初学者和进阶者深入理解这些核心概念,并通过实际的源代码实现来提升编程能力。 在数据结构中,我们研究如何...
2. **链表** - 虽然源码中没有链表的具体实现,但在数据结构中,链表是基础之一,它允许动态分配内存,常用于实现队列、栈和哈希表等。 3. **排序算法** - `Sort.java`可能包含了各种排序算法的实现,如冒泡排序、...
《数据结构与算法分析_Java语言描述(第2版) 源代码》是一本深入探讨数据结构和算法的书籍,其源代码是学习和理解书中理论的重要实践资源。这本书籍主要面向计算机科学专业的学生以及对算法有深入研究需求的开发者。...
数据结构与算法(Python) 一、引入概念 1-01算法引入 1-02 时间复杂度与大O表示法 1-03-最坏时间复杂度与计算规则 1-04-常见时间复杂度与大小关系 1-05-代码执行时间测量模块 1-06-Python列表类型不同操作的...