线性表总结

Posted lfylove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表总结相关的知识,希望对你有一定的参考价值。

#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后移,之后通过类似头插法建链表的方式实现逆置功能。
 

以上是关于线性表总结的主要内容,如果未能解决你的问题,请参考以下文章

Android 底部工作表布局边距

线性表总结

[数据结构]——线性表总结(c语言代码实现)爆肝两万字!

##线性表总结

线性表总结

线性表总结