关闭

C语言实现单链表相关操作

241人阅读 评论(0) 收藏 举报
分类:


//单链表相关操作

#include<stdio.h>

#include<stdlib.h>
typedef int ElemType; 


typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;

/*
//头插法建立链表
LinkList CreatList1(LinkList &la)
{
int x;
la = (LinkList)malloc(sizeof(LNode));
la->next = NULL;
scanf("%d",&x);
while(x!=9999)
{
LNode *s = (LNode*)malloc(sizeof(LNode));
s->data = x;
s->next = la->next;
la->next = s;
scanf("%d",&x);
}
return la;

}
*/

//尾插法建立链表
LinkList CreatList2(LinkList &la)
{
int x;
la = (LinkList)malloc(sizeof(LNode));
la->next = NULL;
LNode *s,*r=la;
scanf("%d",&x);
while(x!=9999)
{
s = (LNode *)malloc(sizeof(LNode));
s->data = x;
r->next = s;
r = s;
scanf("%d",&x);
}
r->next = NULL;
return la;
}

//按序号查找节点
LNode *GetElem(LinkList L,int i)
{
int j = 1;
LNode *p = L->next;
if(i<1)
return NULL;
while(p&&j<i)
{
p = p->next;
j++;
}
return p;
}

/*
//按值查找表节点
LNode *LocateElem(LinkList L,ElemType e)
{
LNode *p = L->next;
while(p!=NULL && p->data!=e)
p = p->next;
return p;
}
*/

//插入节点元素
LNode *InsertElem(LinkList L,int x,int i)
{
LNode *p = GetElem(L,i-1);
LNode *s = (LNode*)malloc(sizeof(LNode));
s->data = x;
s->next = p->next;
p->next = s;
return p;
}

/*
//s节点插入到p节点之前
LNode *ExchangeElem(LinkList L,int i)
{
LNode *p = GetElem(L,i);
LNode *s = GetElem(L,i+1);
int temp;
s->next = p->next;
p->next = s;
temp = p->data;
p->data = s->data;
s->data = temp;
return p;
}
*/

//删除节点元素
LNode *DeleteElem(LinkList L,int i)
{
LNode *q;
LNode *p = GetElem(L,i-1);
q = p->next;
p->next = q->next;
free(q);
return p;
}

void main()
{
LinkList la;

LNode *m;


//CreatList1(la);//头插法
CreatList2(la);//尾插法

//m = GetElem(la,2);//按序号查找
//m = LocateElem(la,2);//按值查找
//printf("%d\n",m->data);

//m = InsertElem(la,88,4);//插入节点
//printf("%d\n",m->next->data);

//m = ExchangeElem(la,3);//交换相邻两元素的位置
//printf("%d,%d\n",m->data,m->next->data);

m = DeleteElem(la,4);//删除元素
printf("%d,%d\n",m->data,m->next->data);
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17225次
    • 积分:249
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:21篇
    • 译文:0篇
    • 评论:0条
    文章分类