- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构___头插法和尾插法建立链表(各分有无头结点)
?实验一 链表的建立及基本操作方法实现
#includestdio.h
#includemalloc.h
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;
/* 尾插法 */
void creatListTailInsert(LinkList L, int n){
LinkList p, tailPointer;
int i;//计数
L = (LinkList)malloc(sizeof(LNode));
if(!L) exit(0); //分配空间失败则退出程序
L = NULL; //no headcrunode
tailPointer = L; //把尾赋给尾指针
printf(taillist(%d):,n);
for(i = 0;i n; i++){
p = (LinkList)malloc(sizeof(LNode));
if(!p) exit(0);
scanf(%d,(p-data));
if(L == NULL) L = p; //当链表为空,L赋给第一个结点
else tailPointer-next = p; //将新结点插入尾部;
p-next = NULL;
tailPointer = p; //插入的结点变为尾结点
}
}
/* 头插法 */
void creatListHeadInsert(LinkList L, int n){
LinkList p;
int i;//计数
L = (LinkList)malloc(sizeof(LNode));
if(!L) exit(0); //分配空间失败则退出程序
L = NULL; //no headcrunode
printf(headlist(%d):,n);
for(i = 0;i n; i++){
//创建新结点
p = (LinkList)malloc(sizeof(LNode));
if(!p) exit(0);
scanf(%d,(p-data));
if(L != NULL) p-next = L;
else p-next = NULL;
L = p; //将头结点 next指向赋给新结点
}
}
/* 依次显示表中所有元素 */
void getAllElem(LinkList L, int n){
LinkList p;
int i = 0;
p = L;
while(p i n){
printf(%d ,p-data);
p = p-next;
i++;
}
printf(\n);
}
void main(){
LinkList headList;
LinkList tailList;
int count; //插入元素个数
printf(count=);
scanf(%d,count);
creatListHeadInsert(headList, count);
creatListTailInsert(tailList, count);
printf(headList:);
getAllElem(headList, count);
printf(tailList:);
getAllElem(tailList, count);
}
2) 利用头插法和尾插法建立一个有头结点单链表
#includestdio.h
#includemalloc.h
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;
/* 尾插法 */
void creatListTailInsert(LinkList L, int n){
LinkList p, tailPointer;
int i;//计数
L = (LinkList)malloc(sizeof(LN
文档评论(0)