`

数据结构与算法:链表(源码)!

阅读更多

今天抽了点时间,复习了一下链表,总结了建立,删除,插入,查找的操作方法。

源码如下:

 

<!---->#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; 
=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

 

分享到:
评论

相关推荐

    《数据结构与算法:Java语言描述》源码.zip

    算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和...

    数据结构和算法分析源码

    数据结构和算法分析源码:链表 排序 树 图等

    python数据结构与算法详解与源码

    数据结构与算法(Python) 一、引入概念 1-01算法引入 1-02 时间复杂度与大O表示法 1-03-最坏时间复杂度与计算规则 1-04-常见时间复杂度与大小关系 1-05-代码执行时间测量模块 1-06-Python列表类型不同操作的...

    基于Python实现的数据结构与算法源码集锦

    项目标题:Python数据结构与算法源码集合 项目概述: 本项目采用Python语言编写,包含了丰富的数据结构与算法实现。全套源码共40个文件,其中39个为Python源文件(.py),以及1个Git忽略配置文件(.gitignore),...

    《数据结构与算法(C#语言描述)》源码

    此为数据结构与算法(C#语言描述) 一书的部分源码 本书是在.NET框架下用C#语言实现数据结构和算法的第一本全面的参考书。本书介绍的方法非常实用,采用了时间测试而非大O表示法来分析算法性能。内容涵盖了数据结构...

    数据结构与算法分析源码

    数据结构与算法分析源码:涵盖单链表 双链表 循环链表 队列 堆栈 图 排序等信息

    数据结构与算法全集(C源代码+详细注释)

    全集内容结构如下: ├─图 │ ├─关键路径(有向无环图及其应用2) │ │ 1.txt │ │ ALGraph.cpp │ │ ALGraph.h │ │ CriticalPath.cpp │ │ CriticalPath.h │ │ InfoType.cpp │ │ InfoType.h │ │ ...

    数据结构-基本算法-静态链表

    数据结构-基本算法-静态链表(学生时代源码,调试可运行)

    约瑟夫生者死者游戏-Python数据结构与算法实战项目完整源码与界面资源

    约瑟夫生者死者问题是数据结构与算法中的经典问题,本项目基于单向循环链表这一数据结构实现,并使用 tkinter技术 实现约瑟夫问题的可视化。项目使用了图形用户界面GUI技术,使用的开发工具为PyCharm 2021.3。实现了...

    Java数据结构和算法系列文章,源码.zip

    算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和...

    c语言数据结构与算法源码实现

    链表 二叉树 二分查找 链队列 链栈 平衡树 顺序表 图 字符处理等源码实现

    基础数据结构和算法(C、C++、Java各一套)

    基础的数据结构和算法C、C++、Java实现,有线性表、链表、队列、二叉树、图、查找、排序等等,全是最标准的实现,可以用来学习也可以直接使用。用来学习的话,里边有每种算法一步一步实现的图片,更加清晰。

    算法与数据结构 数据与流程建模 实验源码.zip

    逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。

    数据结构与算法源码.zip

    多种语言包括java、python、c语言、go语言、php等来实现的数据结构的源码,包含数组、 链表、栈、队列、递归、排序、二分查找、散列表、二叉树、堆、图、回溯、分治、动态规划的实现方法。非常适合学习数据结构的小...

    Delphi算法与数据结构 源码(下)

    提供了有关使用算法和数据结构的一个详尽的介绍。Bucknall先从算法性能的讨论开始,涵盖了诸如数组、链表和二叉树等内容。这本书强调了查找算法(如顺序和二分查找),另外也重点介绍了排序算法(包括冒泡排序、插入...

    数据结构与算法-2020.pptx

    项目组内部培训使用PPTX课件,实习生、初级程序员必须掌握的9大算法和常用类型的数据结构(数组、链表、哈希)。

    数据结构-基本算法-孩子兄弟链表

    数据结构-基本算法-孩子兄弟链表(学生时代源码,调试可运行)

    java二叉树算法源码-DataStructure:常用数据结构及其算法的Java实现,包括但不仅限于链表、栈,队列,树,堆,图等经典数据结构

    本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构,持续更新中... 目前,该项目具体包括如下内容: 单向链表的数据结构及其相关算法:单向链表结构包含两...

    VC++数据结构经典算法源码包

    VC++数据结构经典算法源码 二分查找1.c 二分查找2.c 二叉树.c [其它] [单元加] 单循环链表.c 单链表.c 图.c [字符] 定长串.c [小写数字转为大写数字] 带头结点双链循环线性表.c [底层编程] [效验算法] [数学问题] ...

Global site tag (gtag.js) - Google Analytics