选择排序功能函数
//顺序表排序
void sort(seqlist *S)
{
datatype temp;
/* //冒泡
for(int i=1;i<S->len;i++)
{
for(int j=0;j<S->len-i;j++)
{
if(S->data[j]>S->data[j+1])
{
temp=S->data[j];
S->data[j]=S->data[j+1];
S->data[j+1]=temp;
}
}
}*/
for(int i=0;i<S->len-1;i++)
{
int max=i;
for(int j=i+1;j<S->len;j++)
{
if(S->data[j]>S->data[max])
{
max=j;
}
}
temp=S->data[max];
S->data[max]=S->data[i];
S->data[i]=temp;
}
}
功能测试

按位置插入功能函数
//按位置修改
int update_pos(seqlist *S,int pos,datatype e)
{
if(NULL==S||empty(S)||pos<0||pos>S->len-1)
{
printf("修改失败\n");
return -1;
}
S->data[pos]=e;
return 0;
}
功能测试结果

链表复盘——功能函数
#include"linklist.h"
//申请空间
linklist *linkcreat()
{
linklist *L=(linklist*)malloc(sizeof(linklist));
// printf("%ld",sizeof(linklist));
if(NULL==L)
{
printf("申请失败\n");
return NULL;
}
//初始化
L->len=0;
L->next=NULL;
printf("创建成功\n");
return L;
}
//头插
int head_add(linklist *L,datatype e)
{
if(NULL==L)
{
printf("所给链表不合法\n");
return -1;
}
linklist *p=(linklist*)malloc(sizeof(linklist));
if(NULL==p)
{
printf("申请失败\n");
return -2;
}
p->data=e;
p->next=NULL;
p->next=L->next;
L->next=p;
printf("插入成功\n");
L->len++;
return 0;
}
//判空
int empty(linklist *L)
{
return L->next==NULL&&L->len==0 ? 1:0;
}
//遍历
void show(linklist *L)
{
if(NULL==L||empty(L))
{
printf("遍历失败\n");
return;
}
linklist *q=L->next;
for(int i=0;i<L->len;i++)
{
printf("%c\t",q->data);
q=q->next;
}
printf("\n");
}
//尾插
int tail_add(linklist *L,datatype e)
{
if(NULL==L)
{
printf("结点不合法\n");
return -1;
}
linklist *p=apply(e);
if(NULL==p)
{
return -1;
}
linklist *q=L;
while(q->next!=NULL)
{
q=q->next;
}
q->next=p;
L->len++;
return 0;
}
//申请结点
linklist *apply(datatype e)
{
linklist *p=(linklist *)malloc(sizeof(linklist));
if(NULL==p)
{
printf("结点申请失败");
return NULL;
}
p->data=e;
p->next=NULL;
return p;
}
//按位置查找返回对应的结点
linklist *find_node(linklist *L,int pos)
{
if(NULL==L||pos<0||pos>L->len)
{
printf("查找失败\n");
return NULL;
}
linklist *q=L;
for(int i=0;i<pos;i++)
{
q=q->next;
}
return q;
}
//任意插
int any(linklist *L,int pos,datatype e)
{
if(NULL==L||pos<1||pos>L->len)
{
printf("插入失败\n");
return -1;
}
linklist *q=find_node(L,pos-1);
linklist *p=apply(e);
p->next=q->next;
q->next=p;
L->len++;
return 0;
}
功能测试

5273

被折叠的 条评论
为什么被折叠?



