`
fdyang
  • 浏览: 79689 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

C/C++ 习题 : 链表

 
阅读更多

反转链表.


解答:

首先要明白链表相关的几个基本的概念.

链表: (Linked list ) - 由几个单个结点线性连接起来的数据结构。包括 表头指针(head) ,当前指针(curPtr), 表尾指针(rear) , 表尾结点(值为NULL)

结点: ( Node ) - 包括数据域和指针域(指向下一个结点 )

 

#include <iostream>
using namespace std;

//定义链表的结点结构
struct Node{
int data;
Node *next;
};

//定义链表类.
class linkedList {
Node *head; // 头指针
Node *rear; //尾指针

public:
linkedList(); // 构造函数,初始化.
void insert(int iData) ; //在表头插入数据.
void append(int iData) ; //在表尾添加数据.
void reverse(); //反转链表.
void output(); //输出.
};

linkedList::linkedList(){
head = NULL;
rear = head;
}

void linkedList::append(int iData){
Node *tmpNode;
tmpNode = (Node *)new(Node); // 新建一个结点.
tmpNode->data = iData;
tmpNode->next = NULL;

if(NULL==head){ //空表,表头直接指向新结点
head = tmpNode;
rear = head;
}else{ //在表尾添加结点
rear->next = tmpNode;
rear = tmpNode;
}
}

void linkedList::reverse(){
// 设置3个结点指针, preNode ,curNode, nextNode.
Node *preNode,*curNode,*nextNode;
if (NULL==head){
return;
};

// 遍历链表,翻转指针域。
preNode = head;
curNode = head->next;
while(curNode!=NULL){
nextNode = curNode->next;
curNode->next = preNode; //指向前一个指针。

//移动到下两个结点
preNode = curNode;
curNode = nextNode;
}
head->next = NULL;
head = preNode;
}

void linkedList::output(){
Node *curNode;
curNode = head;
if (NULL==curNode){ //空表
cout<<"void linkedList!";
return;
}
do {
cout<<curNode->data<<","; //单结点输出.
curNode=curNode->next;
}while(curNode!=NULL);
}

int main(){
linkedList mList;
int a[8]={1,2,3,4,5,6,7,8};
for (int i=0;i<8;i++){
mList.append(a[i]);
};
mList.output();

mList.reverse();
mList.output();
getchar();
return 0;
}

 

 

分享到:
评论

相关推荐

    C++编程练习题大全(带答案).pdf

    409页C++练习题,涵盖了入门习题,提高习题,同时也包含了大量基础算法及一些链表、队列等算法习题,方便在入门C++的同时,对一些算法进行了解。

    c++数据结构练习题

    在学习到c++版的数据结构理论后适当做些练习题,可以巩固复习已经学完的知识结构.

    c++经典练习题

    c++经典练习题,包含链表,队列,栈等知识和一些常用算法

    c++链表习题

    单链表的删除 ,插入。删除具体数。删除非递减有序数列的相同元素。

    Josephus问题C++单循环链表实现

    这个完全符合课本上习题的要求,我作业交的就是这个,我自己还在里面做了详细的注释

    2.1_链表基本练习题.CPP

    从键盘输入一组整型元素序列,建立链表。要求输入元素递增,如果不递增提示重新输入刚才错误的数据。 实现该链表的遍历。 在该链表中进行顺序查找某一元素,查找成功返回1,否则返回0。 把元素x插入递增有序表中,...

    链表练习.c

    数据结构中对链表的创建和遍历,采用c进行实现,通过该部分学习可以加深对链表和指针的学习,同时对c的应用可以更加深刻。

    C++练习题合集(包含ppt、教材等)

    C++程序设计复习(1)算法 (1)遍历 题目:创建单向链表,并输出单向链表所有结点的值; #include #include using namespace std; struct Name { char name[20]; Name* next; }; Name * head; Name * ...

    C语言题库数组,指针,结构体,链表习题

    整理的一些关于C语言的练习题,题目答案都有,需要的可以下载看一下

    c++数据结构课件(链表习题)

    1. 逆序建立单链表 思想: 建立单链表的过程要求动态生成节点,从“空表”的初始状态起,依次建立各节点,并逐个插入单链表。

    链表实现学生成绩管理C++

    大学课本习题源程序 void main() {double a,b,c,p,x1,x2; cout,b,c:"; cin&gt;&gt;a&gt;&gt;b&gt;&gt;c; p=-b/(2*a); try {x1=p+q(a,b,c); x2=p-q(a,b,c); cout; } catch(double d) {cout,b=",c="&lt;&lt;c,disc=",error!";} cout...

    数据结构习题顺序表单链表顺序栈

    ,数据结构习题 顺序表 单链表 顺序栈,题目的添加删除程序运行的结果

    leetcode叫数-DataStructure:常见数据结构C++(leetcode/牛客)

    常见数据结构C++解题(leetCode)及随笔练习分析(牛客) 关于LeetCode中的题,Repo中的pdf都有解析。真的非常好的资料,感谢这么多大佬给总结精华新手一定要仔细看呦 链表 最近在看侯捷专家的STL源码分析,恰好有讲到...

    leetcodeoj调试-LeetCode-Exercise:LeetCode刷题&剑指offer第二版题解(67题已完成)&部分数据结构的实

    LeetCode练习 /tree: 有关树(包括二叉树,二叉搜索树等)的题解, C++实现 /java: 使用Java编写的一些解题代码, 涉及到的题目有部分和C++重复 LeetCodeEx:杂七杂八的,暂时没有分类的题解 LeetCodeTree:有关树(包括...

    java初级开发面试笔试题-cpp-practice:一些练习C++问题集,主要取自http://www.programcreek.com/2

    java初级开发者面试笔试题cpp-实践 这个存储库包含一些我发现有趣的编码问题的解决方案。 解决方案是用 C++ 编写的,并依赖于单元测试和构建(Meson 生产忍者构建抵押品)。 我试图遵循严格的测试驱动开发方法来解决...

    C语言:一元多项式加减法运算(链表 附答案).docx

    C语言链表的入门题,里面提供了两种思路供参考,用链表来实现一元多项式的加减法,并按照一定规律输出。也是练习链表和排序算法的一道小实验,初学链表的小伙伴可以参考参考噢

    数据结构(C++)有关练习题

    在计算机科学发展过程中,早期数据结构教材大都采用PASCAL语言为描述工具,后来出现了采用C语言为描述工具的教材版本、至今又出现了采用C++语言为描述工具的多种教材版本。本教实验指导书是为已经学习过C++语言的...

    C语言免费学习安卓客户端

    2、C语言逻辑算法练习题; 3、C语言函数、指针;C语言结构; 4、C语言链表结构等。 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的C语言编程思想和开发实力,使您能够系统的学习C语言...

    csdn 翁恺 C 语言程序设计(完) 视频.txt

    P192.2.5 表达式:如何使用PAT系统来做编程练习题 P203.0.1 编程练习解析:PAT再解释 P213.0.1 编程练习解析:第二周习题解析 P223.0.3 编程练习解析:0的故事 P233.1 判断:判断的条件 P243.1.1 判断:做判断 P253....

    C++/C 数据结构1800题及答案

    数据结构与算法课程内容包括数据结构与抽象数据类型、算法特性及分类、算法效率与度量、线性结构、顺序表、链表、栈与队列、栈与递归、递归转非递归、字符串的存储结构、字符串运算的算法实现、字符串的快速模式匹配...

Global site tag (gtag.js) - Google Analytics