码迷,mamicode.com
首页 > 其他好文 > 详细

线性表总结

时间:2019-03-24 23:32:13      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:eve   通过   return   语法   stream   c++   while   turn   ++   

#1.代码功能:头插法建链表

#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct LNode  		//定义单链表结点类型
{
	ElemType data;
	struct LNode *next;		//指向后继结点
} LNode,*LinkList;
void CreateListF(LinkList &L,int n);//头插法建链表
void DispList(LinkList L);//输出链表
void DestroyList(LinkList &L);//销毁链表
int main() 
{
	LinkList L;
	int n;
	cin>>n;//输入链表节点个数
	CreateListF(L,n);//头插法建链表
	DispList(L);//输出链表
	DestroyList(L);//销毁链表
	return 0;
}
##1.1
我的代码:
CreateListF(L,n){//1
LinkList s;//2
L=new LNode;//3
L->next=NULL;//4
for(int i=0;i<n;i++){//5
s=new LNode;//6
cin>>s->data;//7
s->next=L->next;//8
L->next=s;//9
}//10
}//11
##2.
不懂的地方:第五到第九行不太理解。
代码分析:本题通过建立一个首结点L并将其头结点置为NULL,循环建立数据节点s将节点s插入到首结点之前,头结点之后,这样就可以实现头插法建链表的功能。
#2.代码功能:单链表逆置
#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct LNode  		//定义单链表结点类型
{
	ElemType data;
	struct LNode *next;		//指向后继结点
} LNode,*LinkList;
void CreateListR(LinkList &L, int n);//尾插法建链表
void DispList(LinkList L);//输出链表
void DestroyList(LinkList &L);//销毁链表
void ReverseList(LinkList &L);//逆转链表
int main() 
{
	LinkList L;
	int n;
	cin>>n;//输入链表节点个数
	CreateListR(L,n);//尾插法建带头结点链表,细节不表
	ReverseList(L);//逆转链表
	DispList(L);//输出链表,细节不表
	DestroyList(L);//销毁链尾,细节不表
	return 0;
}
##2.1
我的代码:
void ReverseList(LinkList &L){//1
LinkList q,p;//2
p=L->next;//3
L->next=NULL;//4
while(p!=NULL){//5
q=p;//6
p=p->next;//7
q->next=L->next;//8
L->next=q;//9
}//10
}//11
不懂的地方:第二到第四的语法不太懂,第六到第九行不太理解怎么实现的转置。
代码分析:本题首先建立两个节点q,p,让L首结点的值赋给p并把L的next域置为NULL,通过while循环让q等于p节点的值,然后p后移,之后通过类似头插法建链表的方式实现逆置功能。
 

线性表总结

标签:eve   通过   return   语法   stream   c++   while   turn   ++   

原文地址:https://www.cnblogs.com/lfylove/p/10591176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!