资源简介
创建空的双向链表;
逐字符读取键盘输入的合法字符串,并依次插入到双向链表中。具体的,对于当前读取的字符,
构造其对应的结点。
利用头插法(或尾插法)将该结点按照键盘输入的顺序插入到双向链表中。
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语言代码ATM管理系统
- 数据结构c语言版期末考试复习题库
- 用c语言编写ATM取款机模拟系统
- 信息安全原理大数四则运算及DH算法
- 单片机接收数据帧帧头帧尾校验数据
- 非标设备接入GB28181平台C语言代码实现
- 用c语言写的8数码游戏
- 算法精解-C语言描述源代码
- codeblocks-17.12mingw-setup网盘
- 尚观教育李慧芹Linux下C语言前嵌入式
- 华中科技大学C语言实验报告
- 基于Linux C语言的多线程模拟智能家具
- c语言实现二维码生成
- 二维码驱动C语言
- 禁忌搜索算法C语言程序
- C++语言程序设计 郑莉 第四版 课后题
- C语言课程设计报告-图书管理系统.z
- booth算法C语言实现
- 电梯模拟C语言数据结构中国地质大学
- CVSD解码c语言代码
- 黑白棋游戏c语言代码
- 学生成绩管理系统v1.0
- c语言综合程序--ATM机
- STM32F3 LCD1602 I2C驱动代码 C语言
- 加速度积分求速度和位移的c语言算法
- 博弈树树的c实现
- 模糊控制算法的c语言实现
评论
共有 条评论