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 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 单链表 -> 正文阅读

[数据结构与算法]单链表

#include<iostream>
using namespace std;
struct Node
{
	int date;//数据域
	struct Node* pNext;//指针域
};
class List
{
public:

	int len;//用来存放有效结点的个数
	int i;
	int val;//用来临时存放用户输入的结点的值
	struct Node* creat_list();//创建
	bool is_empty(struct Node* pHead);//是否为空
	int length_list(struct Node*);//长度
	bool insert_list(struct Node*,int,int);//插入
	bool delete_list(struct Node*, int, int *);//删除
	void scort_list(struct Node*);//排序
private:
	Node* pHead;
};

struct Node* create_list()
{
	
	if (NULL == pHead)
	{
		cout << "分配失败" << endl;
	}

	cout << "请输入需要生成链表结点的个数:len= ";

	for (int i = 0; i < List::len; ++i)
	{
		cout << "请输入第几个结点的值:";
		i += 1;
	}

};

bool is_empty(struct Node* pHead)//是否为空
{
	if (NULL == pHead->pNext)
		return true;
	else
		return false;
};
int length_list(struct Node*pHead)//长度
{
	struct Node* p = pHead->pNext;
	int len = 0;
	while (p)
	{
		++len;
		p = p->pNext;
	}
	return len;
};
void soert_list(struct Node*)//排序
{
	int i, j, t;
	int len = length_list(pHead);
	Node* pNext = p, q;
	for ( i = 0,p=pHead->pNext; i < List::len - 1; ++i,p=p->pNext)
	{
		for (j = i + 1,q=p->pNext; j < len; ++j,q=q->pNext)
		{
			if (p->date > q->date)//类似于数组中的:a[i]>a[j]
			{
				t = p->date;// t = a[i];
				p->date = q->date;//a[i] = a[j];
				q->date = t;//a[j] = t;
			}
		}
	}
	return;
};

bool insert_list(struct Node*, int pos, int val)//在链表第pos个结点前插入一个新结点,值为val
{
	int i = 0;
	struct Node* p = List::pHead;
	while (NULL != p && i < pos - 1)
	{
		p = p->pNext;
		++i;
	}
	if (i > pos - 1 || NULL == p->pNext)
		return false;
	struct Node* q = p->pNext;
	val = q->date;

};
bool delete_list(struct Node*, int, int*)//删除,指向链表,删除结点,删除的结点放到第三个结点里去
{
	int i = 0;
	struct Node* p = List::pHead;
	while (NULL != p && i < pos - 1)
	{
		p = p->pNext;
		++i;
	}
	if (i > pos - 1 || NULL == p->pNext)
		return false;
	struct Node* q = p->pNext;
	*pVal = q->date;
	p->pNext = p->pNext->pNext;
	free(q);
	q = NULL;
};
int main()
{
	struct Node* pHead = NULL;
	pHead = creak_list();
	int len = length_list(pHead);
	cout << "链表的长度为" << len << endl;

	return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:50:25  更:2021-09-24 10:51:21 
 
开发: 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年5日历 -2024/5/17 13:47:18-

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