#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct List
{
int data; //数据域
struct List *next; //指针域
}List,*ListType; //定义链表的结点结构
void IniteList(ListType &l); //初始化操作
void InsertList(ListType &l,int e); //插入单个元素
void TraverseList(ListType &l); //遍历单链表
void DeleteList(ListType &l,int i); //删除单链表中第i个位置的元素
int main()
{
ListType head;
IniteList(head);
InsertList(head,2);
TraverseList(head);
return 0;
}
void IniteList(ListType &l)
{
l = (ListType)malloc(sizeof(List));
if(!l)
{
printf("Over flow\n");
exit(1);
}
l->next = NULL;
}
void InsertList(ListType &l,int e)
{
ListType tail = l;
ListType p;
while(tail->next != NULL)
tail = tail->next;
p->data = e;
p->next = tail->next;
tail->next = p;
}
void TraverseList(ListType &l)
{
ListType List = l;
while(List->next)
{
printf("%-3d",List->next->data);
List = List->next;
}
printf("\n");
}
void DeleteList(ListType &l,int i)
{
ListType d = l;
if(i <= 0)
return ;
i --;
while(i > 0)
{
i --;
d = d->next;
if(d->next == NULL)
{//超出单链表的范围
return;
}
}
ListType p = d->next;//将要删除的结点赋值给指针p
d->next = p->next; //修改删除结点的前驱的指针域即可单链表元素的删除
free(p); //释放存储空间
}
数据结构之单链表的C实现
最新推荐文章于 2023-11-22 10:29:20 发布