链表基本操作及其反转
来源:互联网 发布:ubuntu查看jdk路径 编辑:程序博客网 时间:2024/05/21 17:58
链表结点声明、建立、打印及反转。
#include <iostream>#include <cstdlib>using namespace std;//链表结点结构体typedef struct LinklistNode{char data;struct LinklistNode* next;}LNode;//链表创建函数,参数为链表头结点和将要插入链表末尾的值,返回链表头结点LNode* creatLinklist(LNode* &head, char val){if(head==NULL){LNode* head=new LNode;head->data=val;head->next=NULL;return head;}else{LNode* flag=head;while(flag->next!=NULL){flag=flag->next;}LNode* last=new LNode;last->data=val;last->next=NULL;flag->next=last;return head;}}//打印链表void printLinklist(LNode* head){if(head==NULL) return;LNode* flag=head;while(flag!=NULL){cout<<flag->data<<endl;flag=flag->next;}return;}//链表反转,参数与返回值皆为链表头结点LNode* reverseLinklist(LNode* head){if(head==NULL||head->next==NULL) return head;LNode* p0=head;LNode* p1=p0->next;LNode* p2=p0->next->next;while(p2!=NULL){p1->next=p0;p0=p1;p1=p2;p2=p2->next;}p1->next=p0;head->next=NULL;return p1;}//主函数int main(){LNode*head=NULL;head=creatLinklist(head, 'a');head=creatLinklist(head, 'b');head=creatLinklist(head, 'c');head=creatLinklist(head, 'd');head=creatLinklist(head, 'e');head=creatLinklist(head, 'f');head=creatLinklist(head, 'g');head=creatLinklist(head, 'h');head=creatLinklist(head, 'i');printLinklist(head);LNode* reversedList=reverseLinklist(head);cout<<"Then reverse the linklist:"<<endl;printLinklist(reversedList);system("Pause");return 0;}
0 0
- 链表基本操作及其反转
- 链表及其基本操作
- 链表的基本操作,创建、删除、插入、反转
- 顺序表及其基本操作
- 线性表及其基本操作
- 块状链表基本操作及其相关例题
- 链表基本操作及其过程详细叙述
- 链表及其基本操作的JAVA实现。
- c语言实现链表及其基本操作
- 链表基本操作及其过程详细叙述
- 静态链表的基本操作及其应用(实验2.3)
- 静态链表的基本操作及其应用(实验2.3)
- 算法-链表反转操作
- 线性表基本概念及其基本操作实现
- 线性表的基本操作及其应用
- 线性表的实现及其基本操作
- 线性表的基本操作及其作用
- 线性表的基本操作及其作用
- JavaWeb学习笔记 第一记
- 智能终端双处理器架构
- makefile 一点点
- js获取前一天时间
- Python: ping网段内所有ip并返回结果
- 链表基本操作及其反转
- 【随想】android是个什么东西,andorid机制随想
- TC Member SRM 478 DIV 1(CarrotJumping-操作观察)
- Android 创建Library Project(库项目)与引用操作
- eclipse导入 library
- windows下安装使用coffeescript
- GPU渲染时代——2D图形图像中的应用(一)
- HDOJ 1261 字串数
- jstat命令详解