资源简介
创建空的双向链表;
逐字符读取键盘输入的合法字符串,并依次插入到双向链表中。具体的,对于当前读取的字符,
构造其对应的结点。
利用头插法(或尾插法)将该结点按照键盘输入的顺序插入到双向链表中。
3、判断双向链表中各节点是否首尾对称,并打印出是否首尾对称的提示信息。(【提示】:可以利用双向链表的头指针和尾指针,其中头指针往链表尾部移动,尾指针向链表头部方向移动。当头尾指针最后能相遇时,则可认为输入字符串是首尾对称的。)
代码片段和文件信息
// shiyan2.cpp : 此文件包含 “main“ 函数。程序执行将在此处开始并结束。
//
#include “pch.h“
#include
#include
#include
#include
#include
using namespace std;
typedef char DataType;
typedef struct DListNode
{
DataType data; // 数据
struct DListNode * pPrev; // 指向上一个结点
struct DListNode * pNext; // 指向下一个结点
}DListNode *pDListNode;
//创建新结点
static pDListNode CreateNewNode(DataType data)
{
pDListNode pNewNode = (pDListNode)malloc(sizeof(DListNode));
if (NULL == pNewNode)
{
perror(“内存分配失败!\n“);
exit(-1);
}
else
{
pNewNode->data = data;
pNewNode->pPrev = NULL;
pNewNode->pNext = NULL;
}
return pNewNode;
}
//带头结点的双向链表的初始化
void DListInit(pDListNode * pHead)
{
int no_data = 0;
assert(NULL != pHead);
//头结点的数据无效(ps:这里用0表示)
*pHead = CreateNewNode(no_data);
(*pHead)->pPrev = *pHead;
(*pHead)->pNext = *pHead;
return;
}
//打印链表内容
void DListPrint(pDListNode pHead)
{
pDListNode pCur = NULL;
assert(NULL != pHead);
//pHead = pHead->pNext;
printf(“\n链表内容为:“);
//printf(“%2c -> “ pHead->data);
for (pCur = pHead; pHead != pCur->pNext; pCur = pCur->pNext)
{
printf(“%2c -> “ (pCur->pNext)->data);
}
//printf(“%2c\n“ pHead->data);
return;
}
//头插
void DListPushFront(pDListNode pHead DataType data)
{
pDListNode pNewNode = NULL;
pDListNode pFir
相关资源
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
- 算符优先语法分析器(C语言编写)
- 基于C语言的密码锁程序
评论
共有 条评论