IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 单链表实现C++ -> 正文阅读

[C++知识库]单链表实现C++

#include<iostream>
#include<stdlib.h>?
using namespace std;
typedef struct node *link;
typedef struct node{
?? ?int element;
?? ?link next;
}Node;
link NewNode()
{
?? ?return (link)malloc(sizeof (Node));
}
typedef struct llist *List;
typedef struct llist {
?? ?link first,curr,last;
}Llist;
List ListInit()
{
?? ?List L=(List)malloc(sizeof*L);
?? ?L->first=0;
?? ?return L;
?}?
link creat(int n)
?{
?
?? ?link head,mid,end;
?? ?head=(link)malloc(sizeof(Node));?? ?
?? ?end=head;
??? ?for(int i=0;i<n;i++)
??? ?{
??? ? ?mid=(link)malloc(sizeof(Node));
?? ? ?cin>>end->element;
?? ? ?end->next=mid;
?? ? ?end=mid;
?? ? }
?? ? end->next=NULL;
?? ??
?? ? return head;
??? ?
?}?
?int ListEmpty(List L)
?{
??? ?return L->first==0;
?}
int ListLength(List L)
{
?? ?int len=-1;
?? ?link p=L->first;
?? ?while(p)
?? ?{
?? ??? ?len++;
?? ??? ?p=p->next;?? ?
?? ?
?? ?}
?? ?return len;
}
int ListRetrieve(int k,List L)
{
?? ?if(k<1)return 0;
?? ?link p=L->first;
?? ?int i=1;
?? ?while(p&&i<k)
?? ?{
?? ??? ?p=p->next;
?? ??? ?i++;
?? ?}
?? ?return p->element;
}
int Listlocate(int x,List L)
{
?? ?int i=1;
?? ?link p=L->first;
?? ?while(p&&p->element!=x)
?? ?{
?? ??? ?p=p->next;
?? ??? ?i++;
?? ?}
?return p?i:0;
?}?
?void ListInsert(int k,int x,List L)//在L的第k处后面插入x?
?{
??? ?if(k<0)return ;
??? ?link p=L->first;
??? ?for(int i=1;i<k&&p;i++)p=p->next;
??? ?link y=NewNode();
??? ?y->element=x;
?? ? if(k){
?? ? ?? ?y->next=p->next;p->next=y;
?? ? }
?? ? else{
?? ? ?? ?y->next=L->first;
?? ? ?? ?L->first=y;
?? ? }
? }?
int ListDelete(int k,List L)
{
?? ?if(k<0||!L->first)return 0;
?? ?link p=L->first;
?? ?if(k==1){L->first=p->next;
?? ?}else
?? ?{
?? ??? ?link q=L->first;
?? ??? ?for(int i=1;i<k-1&&q;i++)q=q->next;
?? ??? ?p=q->next;
?? ??? ?q->next=p->next;
?? ?}
? ? int x=p->element;
? ? free(p);
? ? return x;
}
void PrintList(List L)
{
?? ?for(link p=L->first;p->next;p=p->next)
?? ?{
?? ?cout<<p->element<<" ";?
?? ?}
}
int main()
{
?? ?int n;
?? ?List a_ptr=ListInit();
?? ?cout<<"输入链表的长度:";?
?? ?cin>>n;
?? ?cout<<"输入链表的元素:";?
? ? a_ptr->first=creat(n);
? ? cout<<"链表是为空吗?:"<<ListEmpty(a_ptr)<<endl;?
? ? cout<<"链表长:"<<ListLength(a_ptr)<<endl;?
? ? cout<<"链表第四个数:"<<ListRetrieve(4,a_ptr)<<endl;
? ? ?cout<<"链表4的位置:"<<Listlocate(4,a_ptr)<<endl;
? ? ?PrintList(a_ptr);cout<<endl;
? ? ?ListInsert(1,100,a_ptr);
? ? ?PrintList(a_ptr);cout<<endl;
? ? ?cout<<"删除的第二个元素是:"<<ListDelete(2,a_ptr)<<endl;
? ? ?PrintList(a_ptr);cout<<endl;
?? ?return 0;
}?
//输入链表的长度:9
//输入链表的元素:1 2 3 4 5 6 7 8 9
//链表是为空吗?:0
//链表长:9
//链表第四个数:4
//链表4的位置:4
//1 2 3 4 5 6 7 8 9
//1 100 2 3 4 5 6 7 8 9
//删除的第二个元素是:100
//1 2 3 4 5 6 7 8 9
//
//--------------------------------
//Process exited after 4.235 seconds with return value 0
//请按任意键继续. . .
?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:17:43  更:2021-11-09 19:18:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:42:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码