博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于visual Studio2013解决算法导论之021单向循环链表
阅读量:4884 次
发布时间:2019-06-11

本文共 2370 字,大约阅读时间需要 7 分钟。



题目

单向循环链表的操作

解决代码及点评

#include 
#include
#include
#include
#include
typedef struct LoopLink{ int nValue; struct LoopLink *pNext;}LoopLink, *PLoopLink;PLoopLink Create(){ PLoopLink pHead = (PLoopLink)malloc(sizeof(LoopLink)); if (NULL == pHead) { printf("分配内存失败!\n"); } pHead->nValue = -9999; pHead->pNext = pHead; return pHead;}void Insert(PLoopLink pHead, int nValue){ if (NULL == pHead) { printf("链表未创建成功!\n"); return ; } PLoopLink pCur = pHead; PLoopLink pTmp = (PLoopLink)malloc(sizeof(LoopLink)); pTmp->nValue = nValue; pTmp->pNext = NULL; while (pCur->pNext != pHead) { if (pCur->pNext->nValue > nValue) { break; } pCur = pCur->pNext; } pTmp->pNext = pCur->pNext; pCur->pNext = pTmp;}void Delete(PLoopLink pHead, int nValue){ if (pHead == NULL) { printf("链表未创建成功!\n"); return; } PLoopLink pCur = pHead; while (pCur->pNext!= pHead) { if (pCur->pNext->nValue == nValue) { PLoopLink pTmp = pCur->pNext; pCur->pNext = pTmp->pNext; free(pTmp); pTmp = NULL; } else { pCur = pCur->pNext; } }}PLoopLink Find(PLoopLink pHead, int nValue){ if (pHead == NULL) { printf("链表未创建成功!\n"); return NULL; } PLoopLink pCur = pHead; while (pCur->pNext!= pHead) { if (pCur->pNext->nValue == nValue) { return pCur->pNext; } else { pCur = pCur->pNext; } } return NULL;}bool IsEmpty(PLoopLink pHead){ if (NULL == pHead) { printf("链表未创建成功!\n"); } return pHead->pNext == pHead;}void Print(PLoopLink pHead){ if (pHead == NULL) { printf("链表未创建成功!\n"); return; } if (pHead->pNext == pHead) { printf("链表为空!\n"); return; } PLoopLink pCur = pHead->pNext; while (pCur != pHead) { printf("%d ", pCur->nValue); pCur = pCur->pNext; } printf("\n");}int main(){ PLoopLink pHead = Create(); // printf("%d\n", IsEmpty(pHead)); Insert(pHead, 1); Insert(pHead, 5); Insert(pHead, 8); Insert(pHead, 4); Insert(pHead, 0); if (NULL != Find(pHead, 2)) { printf("链表中有该数据!\n"); } else { printf("链表中没有该数据!\n"); } Delete(pHead, 8); Print(pHead); system("pause"); return 0;}

代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6858815

解压密码:c.itcast.cn

下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”

2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行

程序运行结果






转载于:https://www.cnblogs.com/niulanshan/p/6175048.html

你可能感兴趣的文章
MySQL-ERROR 2003
查看>>
SQL Server2012-SSIS的包管理和部署
查看>>
JavaScript内置对象
查看>>
如何把js的循环写成异步的
查看>>
ER图是啥?
查看>>
too many include files depth = 1024错误原因
查看>>
HTTP协议详解(三)
查看>>
Android零基础入门第84节:引入Fragment原来是这么回事
查看>>
解析SQL Server之任务调度
查看>>
参考资料地址
查看>>
08.路由规则中定义参数
查看>>
Pandas截取列部分字符,并据此修改另一列的数据
查看>>
java.lang.IllegalArgumentException
查看>>
【Spark】编程实战之模拟SparkRPC原理实现自定义RPC
查看>>
接口实现观察者模式
查看>>
四则运算完结篇
查看>>
Objective-C中的类目,延展,协议
查看>>
Python标准模块--Iterators和Generators
查看>>
Introduction Sockets to Programming in C using TCP/IP
查看>>
PHP 简单实现webSocket
查看>>