线性表总结
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后移,之后通过类似头插法建链表的方式实现逆置功能。
以上是关于线性表总结的主要内容,如果未能解决你的问题,请参考以下文章