资源简介
1、用头插法建立长度为n的带头结点的单链表。
2、查找单链表中第K个结点。
3、插入一个新元素X到指定位置i。
4、删除指定位置i处的结点
代码片段和文件信息
#include
#include
#include“linklist.h“
//链表的初始化
void init_list( List *ptrl){
ptrl=malloc(sizeof(List));
ptrl->Next=NULL;
}
//建立带头结点的单链表(头插法)
void CreateList(List *ptrlElementType a[]int n){
List *p;
ptrl->Next=NULL;
int i;
for(i=0;i p=malloc(sizeof(List));
p->Data=a[i];
p->Next=NULL;
p->Next=ptrl->Next;
ptrl->Next=p; }
return;
}
void input_list( ElementType a[]int n){//给单链表赋值
printf(“please input the data\n“);
int i;
for(i=0;i scanf(“%d“&a[i]);
return;
}
void display(List *ptrl){//打印出单链表的内容
List *p=ptrl->Next;
while(p){
printf(“%d\t“p->Data);
p=p->Next;
}
return;
}
//查找单链表中的第K个结点
List *FindKth(int KList *ptrl){
List *p=ptrl->Next;
int i=1;
while(p!=NULL&&i p=p->Next;
i++;
}
if(i==K)
return p;
else
return NULL;
}
//插入
List *Insert(ElementType xint iList *ptrl){
List *p*s;
if(i==1){
s=malloc(sizeof(List));
s->Data=x;
s->Next=ptrl->Next;
return s;
}
p=FindKth(i-1ptrl);
if(p==NULL){
printf(“参数i错“);
return NULL;
}
else{
s=malloc(sizeof(List));
s->Data=x;
s->Next=p->Next;
p->Next=s;
return ptrl;
}
}
//删除
List *Delete(int iList *ptrl){
List *p*s;
if(i==1){
s=ptrl;
ptrl=ptrl->Next;
free(s);
return ptrl;
}
p=FindKth(i-1ptrl);
if(p==NULL){
printf(“第%d个结点不存在“i-1);
return NULL;
}
else if(p->Next==NULL){
printf(“第%d个结点不存在“i);
return NULL;
}
else {
s=p->Next;
p->Next=s->Next;
free(s);
return ptrl;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-21 18:33 2222\
文件 1673 2015-11-07 20:16 2222\li
文件 1142 2015-11-06 19:00 2222\li
文件 183312 2017-03-21 18:33 2222\li
文件 504 2017-03-21 18:18 2222\li
文件 267 2017-03-28 20:09 2222\li
文件 30154 2017-03-21 18:33 2222\li
文件 367 2017-03-21 18:18 2222\main.c
文件 27847 2017-03-21 18:18 2222\main.o
文件 1267 2017-03-21 18:42 2222\Makefile.win
- 上一篇:libtiff 64位库
- 下一篇:操作系统win7和winXP纯净版iso镜像文件
评论
共有 条评论