单链表相对于顺序表比较难理解,但是比较实用,单链表的插入,删除不需要移动数据元素,只需要一个指针来寻找所需要的元素,还有一个大优点就是不浪费空间,当你想要增加一个结点可以申请(malloc())一个结点的空间,删除一个结点也可以释放(free()),跟顺序表一样的,首先先来定义一个单链表,

 typedef struct lnode
{
int data;
struct lnode *next;
}LNode,*LinkList;

typedef是将类型struct lnode改为LNode,还有指向这个类型的指针*LinkList;aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAABMCAIAAAB2/Gt3AAAD7UlEQVR4nO2b25mDIBBGqYuCqMdqaMZi/n0QdYZbjGuUZP7zFJHdz+E43EIciEnc0w9AnmEX74gNKN4oFG8UijcKxRvlhfgrZo4jYiRMCcUDZsKUUDxgJkwJxQNmwpTcKT4GP80A5sm7EJcPS0kMbvmg2OohBteg8mcnoPhU2L99mhhciJtQ5XX5oFEVaoYbxe9D8amwf/sfxLAZX/O/ks8hzpOX14Hir+Y+8drlip9mke97jusrdvWXc5/4hRicD8HvwmIQ+rZBf71iV/8p7hO/ZO06xgtCWFNeJ/w2JISoDGe1roDiU2H/9r+IweXaNpOF3/VVaXf113T2FJ8K+7fPUZUnM32e9hEgBuenWO/qh8n4/aleP5IMLi+/OJhj3JrxKkp1kd4K3QRyve/CVJ0cXtNol4tfuysxeal3TSbES7t5S8RQWlwbZakbiya6rtGuEK/RlvPe7qPd1zHuFJ8os3uxHkLWXmKjx09z2UTPic9Ehqn+JDqA6n8yIl44nyfv1laRY32RDTLvS8bJ+FJtKo3Bee8bz2xAvFqwyzId9zLr36f0W+uOlPHbo+rtiO57KZ+2tUq5ZlfiEPeJH5l/iI+TP/by1V9TAxk/MifC1PP2Rgr7aa6OUbVt6ZuheODU5C4N3nLfYa5V2i6Z8QNyLkwtvpnxCYofkCvEH8341jeQN0PxwH0Z75zLVjEU/yjvhpnvyB7I+MYuDsU/ipEwJRQPmAlTMqb4dT/3Lig+FfZvfx6K/zhfLb5ymuccFJ8K+7c/D8Wf440GGUa8XAkvp230Lsd2LxZFTp90yWoegeJTYf/29eivZ7OTGvMU1vVv9oV9Hme75gue7djE21p+71x/tYtTLLGRCU1GEB/zozedrl657r7g74wDT4p3evtPBeer77G4kzXUd2V8xXJepHdEe+IbNV/wpPhsd6/+E4Ns5y+pL1rup8TvP8RYr1riOzVf8KT47JDOfha1QjHtqZxo+h7xla5edHr6pm4qHWev5gvGFN97+p8Qnx/HU5M7OfClaOvDYLfmC4YTX0mG/A9TV68qfZt4ZKu5qFpk7/aWUy+1wX8/j9mq2WU88cXsfd7P9vUndweXMqOIf5YBxSMb6NXUP58QFkvh71jOPY+RMCUUD5gJU0LxgJkwJRQPmAlTQvGAmTAlFA+YCVNC8YCZMCUUD5gJU0LxgJkwJRQPmAlTQvGAmTAlFA+YCVNC8YCZMCUUD5gJU0LxgJkwJRQPmAlTQvGAmTAlFA+YCVNC8YCZMCUUD5gJU0LxgJkwJRQPmAlTQvGAmTAlFA+YCVNC8YCZMCXviSe/CsUbheKNQvFGoXijLLr/ABKyI0dquBDjAAAAAElFTkSuQmCC" alt="" />,所以当我们创建的每个这样的类型都包含左数据,有指针,创建完单链表,这个表还是空的;先构建单链表并输入数据(逆序输入(表头插入)):

LinkList creatN()
{
LinkList L,s;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
int x;
scanf("%d",&x);
while(x!=-)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
s->next=L->next;
L->next=s;
scanf("%d",&x);
}
return L;
}

正序插入(表尾插入):

LinkList creatZ()
{
LinkList L,s;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
LinkList p;
p=L;
int y;
scanf("%d",&y);
while(y!=-)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=y;
s->next=NULL;
p->next=s;
p=p->next;
scanf("%d",&y);
}
return L;
}

输出函数:

int print(LinkList L)
{
LinkList p=L->next;
while(p!=NULL)
{
printf("|%d|",p->data);
p=p->next;
}
printf("\n");
printf("请继续使用,请输入0~8的数字:\n");
}

接下来弄一个表格把所有函数都实现:aaarticlea/png;base64,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" alt="" />,

#include "stdio.h"
typedef struct lnode
{
int data;
struct lnode *next;
}LNode,*LinkList;/* */
LinkList creatN();
LinkList creatZ();
void ShowMainWindow();
int print(LinkList L);
int addbiaowei(LinkList L,int x);
int addbiaotou(LinkList L,int x);
int deletbiaowei(LinkList L);
int deletbiaotou(LinkList L);
int findmax(LinkList L);
int findreplace(LinkList L,int i,int x);
main()
{
printf("正序插入请按扣z(否则为逆序插入):");
LinkList L;
char a;
scanf("%c",&a);
if(a=='z')
{
printf("请输入数据并以-1为结尾:\n");
L=creatZ();
}
else
{
printf("请输入数据并以-1为结尾:\n");
L=creatN();
}
system("cls");
ShowMainWindow();
printf("请输入0~8的数字:\n");
while()
{
int num;
scanf("%d",&num);
if(num==)
{
printf("%请输入你想要在表尾增加的数据:\n");
int y;
scanf("%d",&y);
addbiaowei(L,y);
}
else
if(num==)
{
printf("请输入你想要在表头增加的数据:\n");
int y;
scanf("%d",&y);
addbiaotou(L,y);
}
else
if(num==)
{
deletbiaowei(L);
}
else
if(num==)
{
deletbiaotou(L);
}
else
if(num==)
{
int max;
max=findmax(L);
printf("最大值为:%d\n请继续使用,请输入0~8的数字:\n",max);
}
else
if(num==)
{
printf("请输入你要查找的元素,并且返回元素所在的位置!:");
int x;
scanf("%d",&x);
LinkList p=L->next->next;
int j=;
while(p->next!=NULL)
{
if(p->data==x)
printf("此元素在%d个位置\n",j);
j++;
p=p->next;
}
printf("请输入0~8的数字:\n");
} else
if(num==)
{
printf("请输入你要的替换的位置和元素!:\n");
int i,x;
scanf("%d,%d",&i,&x);
findreplace(L,i,x);
} else
if(num==)
{
printf("此表的数据为:");
print(L);
}
else
if(num==)
break;
}
printf("%d",L->next->data);
}
void ShowMainWindow()
{
printf("\n\n\t+-----------------------------------------------------+\n");
printf("\t| 单链表练习 |\n");
printf("\t+-----------------------------------------------------+\n");
printf("\t|------------------- 1.表尾增加-----------------------|\n");
printf("\t|------------------- 2.表头增加-----------------------|\n");
printf("\t|------------------- 3.表尾删除-----------------------|\n");
printf("\t|------------------- 4.表头删除-----------------------|\n");
printf("\t|------------------- 5.查找最大值---------------------|\n");
printf("\t|------------------- 6.查找元素的位置-----------------|\n");
printf("\t|------------------- 7.替换元素-----------------------|\n");
printf("\t|------------------- 8.打印表-------------------------|\n");
printf("\t|------------------- 0.退出系统-----------------------|\n");
printf("\t+-----------------------------------------------------+\n");
printf("\t| 请输入您的选择(0-5) |\n");
printf("\t+-----------------------------------------------------+\n");
printf("\n\n");
}
LinkList creatN()
{
LinkList L,s;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
int x;
scanf("%d",&x);
while(x!=-)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
s->next=L->next;
L->next=s;
scanf("%d",&x);
}
return L;
}
LinkList creatZ()
{
LinkList L,s;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
LinkList p;
p=L;
int y;
scanf("%d",&y);
while(y!=-)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=y;
s->next=NULL;
p->next=s;
p=p->next;
scanf("%d",&y);
}
return L;
}
int addbiaowei(LinkList L,int x)
{
LinkList p=L;
LinkList s;
while(p->next!=NULL)
{
p=p->next;
}
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
p->next=s;
s->next=NULL;
printf("在表尾添加成功,查看请按8!\n");
}
int addbiaotou(LinkList L,int x)
{
LinkList s;
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
s->next=L->next;
L->next=s;
printf("在表头添加成功,查看请按8!\n");
}
int deletbiaowei(LinkList L)
{
LinkList p=L;
LinkList s;
while(p->next->next!=NULL)
{
p=p->next;
}
p->next=NULL;
free(p->next);
printf("表尾删除成功,查看请按8!\n");
}
int deletbiaotou(LinkList L)
{
LinkList p=L->next;
L->next=p->next;
p->next=NULL;
free(p->next);
printf("表头删除成功,查看请按8!\n");
}
int findmax(LinkList L)
{
int max;
LinkList p=L->next;
max=p->data;
while(p->next!=NULL)
{
p=p->next;
if(max<p->data)
max=p->data;
}
return max;
}
int print(LinkList L)
{
LinkList p=L->next;
while(p!=NULL)
{
printf("|%d|",p->data);
p=p->next;
}
printf("\n");
printf("请继续使用,请输入0~8的数字:\n");
}
int findreplace(LinkList L,int i,int x)
{
LinkList p=L->next;
int j=;
while(p->next!=NULL&&j<i-)
{
j++;
p=p->next;
}
p->data=x;
printf("替换成功,查看请按8!:\n");
}

这就是一个完整的单链表,函数功能可以自己复制运行试一试。

C:数据结构与算法之单链表的更多相关文章

  1. 【数据结构与算法】单链表操作(C++)

    #include <stdio.h> #include <malloc.h> /*单链表节点定义*/ typedef struct LNode { int data; //da ...

  2. python数据结构与算法之单链表

    表的抽象数据类型 ADT list:                      #一个表的抽象数据类型 List(self)               #表的构造操作,创建一个空表 is_empty ...

  3. 2、java数据结构和算法:单链表: 反转,逆序打印, 合并二个有序链表,获取倒数第n个节点, 链表的有序插入

    什么也不说, 直接上代码: 功能点有: 1, 获取尾结点 2, 添加(添加节点到链表的最后面) 3, 添加(根据节点的no(排名)的大小, 有序添加) 4, 单向链表的 遍历 5, 链表的长度 6, ...

  4. 数据结构之 线性表---单链表的操作B(先逆序+再删除重复元素)

    数据结构上机测试2-2:单链表操作B Time Limit: 1000MS Memory limit: 65536K 题目描述 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删 ...

  5. 数据结构之 线性表---单链表操作A (删除链表中的指定元素)

    数据结构上机测试2-1:单链表操作A Time Limit: 1000MS Memory limit: 4096K 题目描述 输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据 ...

  6. java数据结构和算法04(链表)

    前面我们看了数组,栈和队列,大概就会这些数据结构有了一些基本的认识,首先回顾一下之前的东西: 在数组中,其实是分为有序数组和无序数组,我简单实现了无序数组,为什么呢?因为有序数组的实现就是将无序数组进 ...

  7. 《数据结构》2.3单链表(single linked list)

    //单链表节点的定义 typedef struct node { datatype data; struct node *next; }LNode,*LinkList; //LNode是节点类型,Li ...

  8. Java数据结构-线性表之单链表LinkedList

    线性表的链式存储结构,也称之为链式表,链表:链表的存储单元能够连续也能够不连续. 链表中的节点包括数据域和指针域.数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域. 注意一个 ...

  9. iOS常用算法之单链表查找倒数第n个节点(图解)

    拿到题目, 首先要先了解链表数据结构, 如下图: 常规思路: 利用数组, 遍历整个单链表, 将每个节点装入数组中, 最终拿到数组根据索引(数组长度-1-n)就得到了倒数第n个元素, 这里要注意从数组中 ...

随机推荐

  1. 老男孩Python全栈开发(92天全)视频教程 自学笔记03

    day3课程目录: pyhton的历史 32bit和64bit系统的区别 Python版本的选择 第一个pyhton程序 文件后缀名及系统环境变量的介绍 pyhton程序的执行和其他编程语言的简单对比 ...

  2. 吞吐量(TPS)、QPS、并发数、响应时间(RT)概念

    开发的原因,需要对吞吐量(TPS).QPS.并发数.响应时间(RT)几个概念做下了解,查自百度百科,记录如下:1. 响应时间(RT)  响应时间是指系统对请求作出响应的时间.直观上看,这个指标与人对软 ...

  3. 利用docker搭建spark hadoop workbench

    目的 用docker实现所有服务 在spark-notebook中编写Scala代码,实时提交到spark集群中运行 在HDFS中存储数据文件,spark-notebook中直接读取 组件 Spark ...

  4. tensorflow初探

    TensorFlow是一个采用数据流图,用于数值计算的开源软件库.自己接触tensorflow比较的早,可是并没有系统深入的学习过,现在TF在深度学习已经成了"标配",所以打算系统 ...

  5. 小程序采坑系列-this.setData

    今天踩了大坑,坑里还都是碎瓶渣子.. 先说一下基本使用.官网也有. 比如说你在main.js里面有这些变量.想修改某些值. data: { main_view_bgcolor: "" ...

  6. display:box和display:flex填坑之路

    背景分析:最近做移动端项目时,遇到一个常见的需求: 可以滑动的导航,如下图 虽然是很常见的一个布局,但在移动端没有做过,想当然的写下以下的样式,简单描述下: 父元素 width:100%: overf ...

  7. UnityShader-菲涅尔反射(Fresnel Reflection)

    菲涅耳公式(或菲涅耳方程),由奥古斯丁·让·菲涅耳导出.用来描述光在不同折射率的介质之间的行为.由公式推导出的光的反射称之为"菲涅尔反射".菲涅尔公式是光学中的重要公式,用它能解释 ...

  8. Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)

    Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇--纯前端多页面) @(HTML/JS) 一般来说,使用vue做成单页应用比较好,但特殊情况下,需要使用多页面也有另外 ...

  9. Codeforces Round #436 (Div. 2)

    http://codeforces.com/contest/864 第一次打cf的月赛-- A 题意:给你一个数列,问你能不能保证里面只有两种数且个数相等.2<=n<=100,1<= ...

  10. tolua++实现lua层调用c++技术分析

    tolua++技术分析 cocos2dx+lua 前言 一直都使用 cocos2dx + lua 进行游戏开发,用 Lua 开发可以专注于游戏逻辑的实现,另外一方面可以实现热更新:而且 lua 是一个 ...