#include <stdio.h>
#include <malloc.h>
typedef char ElemType;
typedef struct node
{
ElemType data; /*数据域*/
struct node *next; /*指针域*/
} SLink;
void InitList(SLink *&L) /*初始化线性表,L为引用型参数*/
{
L=(SLink *)malloc(sizeof(SLink));
L->next=L;
}
int GetLength(SLink *L) /*求线性表的长度*/
{
int i=0;
SLink *p=L->next;
while (p!=L)
{
i++;p=p->next;
}
return i;
}
int GetElem(SLink *L,int i,ElemType &e) /*求线性表中第i个元素*/
{
int j=1;
SLink *p=L->next;
if (i<1 || i>GetLength(L))
return(0); /*i参数不正确,返回0*/
while (j<i) /*从第1个结点开始,查找第i个结点*/
{
p=p->next;
j++;
}
e=p->data;
return(1); /*返回1*/
}
int Locate(SLink *L,ElemType x) /*按值查找*/
{
int i=1;
SLink *p=L->next;
while (p!=L && p->data!=x) /*从第1个结点开始查找data域为x的结点*/
{ p=p->next;
i++;
}
if (p==L)
return(0);
else
return(i);
}
int InsElem(SLink *L,ElemType x,int i) /*插入结点*/
{
int j=1;
SLink *p=L,*s;
s=(SLink *)malloc(sizeof(SLink));
s->data=x;s->next=NULL;
if (i<1 || i>GetLength(L)+1)
return 0;
while (j<i)
{
p=p->next;j++;
}
s->next=p->next;
p->next=s;
return 1;
}
int DelElem(SLink *L,int i) /*删除结点*/
{
int j=1;
SLink *p=L,*q;
if (i<1 || i>GetLength(L))
return 0;
while (j<i)
{
p=p->next;j++;
}
q=p->next;
p->next=q->next;
free(q);
return 1;
}
void DispList(SLink *L) /*输出线性表*/
{
SLink *p=L->next;
while (p!=L)
{
printf("%c ",p->data);p=p->next;
}
printf("\n");
}
void main()
{
int i;
ElemType e;
SLink *H;
InitList(H); /*(1)初始化循环单链表H*/
InsElem(H,'a',1); /*(2)插入元素*/
InsElem(H,'b',2);
InsElem(H,'c',3);
InsElem(H,'d',4);
InsElem(H,'e',5);
printf("线性表:");DispList(H); //(3)
printf("长度:%d\n",GetLength(H)); //(4)
if(GetLength(H)==0) //(5)
printf("线性表为空!\n");
else
printf("线性表不为空!\n");
i=3;GetElem(H,i,e); //(6)
printf("第%d个元素:%c\n",i,e);
e='a';
printf("元素%c是第%d个元素\n",e,Locate(H,e)); //(7)
InsElem(H,'f',4); //(8)
printf("线性表:");DispList(H); //(9)
i=3;printf("删除第%d个元素\n",i); //(10)
DelElem(H,i);
printf("线性表:");DispList(H); //(11)
}
weixin_42653672
- 粉丝: 109
- 资源: 1万+
最新资源
- 【年度培训】培训效果评估汇总表行政人事CLUB.xlsx
- 【年度培训】培训管理规范-培训管理总结行政人事CLUB.xlsx
- 【年度培训】培训成效分析图表行政人事CLUB.xlsx
- 【年度培训】培训效果评分标准行政人事CLUB.xlsx
- 【年度培训】年度培训计划记录表行政人事CLUB.xlsx
- 【年度培训】行政类专业化培训计划行政人事CLUB.xlsx
- 【年度培训】培训分析表.xls
- 【年度培训】20XX年度培训计划表行政人事CLUB.xlsx
- 【年度培训】公司内部讲师培训效果评分表行政人事CLUB.xlsx
- 【年度培训】年度培训计划表行政人事CLUB.xlsx
- 【年度培训】行政部年度培训需求计划表范例行政人事CLUB.xls
- 【年度培训】行政岗位新人入职培训计划行政人事CLUB.xls
- 【年度培训】行政年度培训计划表行政人事CLUB.xls
- 【年度培训】行政部岗前培训课程表行政人事CLUB.xls
- 【年度培训】行政部岗前培训一览表行政人事CLUB.xls
- 【年度培训】公司年度培训计划表.xls
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈