用标准C实现的类似map list Vector的一组函数库,该怎么解决
用标准C实现的类似map list Vector的一组函数库
用标准C实现的类似map list Vector的一组函数库,完全实现好像不怎么现实哦。
所以,其中的一个就可以了。
只要有插入 删除 排序 查找这几个函数就可以了。操作的数据对象就是char.
各位老大谁有积攒下来的可以发给我阿,谢谢。
demonljw@163.com
------解决方案--------------------
//线性链表插入,删除操作
#include <stdio.h>
#include <malloc.h>
typedef struct LNode
{int data;
struct LNode *next;
}LNode,*linklist;
int Init(linklist *L)
{*L=(linklist)malloc(sizeof(LNode));
(*L)-> next=NULL;
return 1;
}
int insert (linklist L,int i,int e)
{linklist p,s;
int j=0;
p=L;
while(p&&j <i-1)
{p=p-> next;j++;}
if(!p||j> i-1)
return 0;
s=(linklist)malloc(sizeof(LNode));
s-> data=e;
s-> next=p-> next;
p-> next=s;
return 1;
}
int del(linklist L,int i,int *e)
{linklist p,q;
int j=0;
p=L;
while(p-> next&&j <i-1)
{p=p-> next;j++;}
if(!p-> next||j> i-1)
return 0;
q=p-> next;
p-> next=q-> next;
*e=q-> data;
printf( "The deleted number:%d\n\n ",*e);
free(q);
return 1;
}
void print(linklist L)
{linklist p;
for(p=L-> next;p;p=p-> next)
printf( "%4d ",p-> data);
printf( "\n ");
}
void main()
{linklist L,p;
int i,e,j,t;
t=Init(&L);
printf( "%d\n\n ",t);
for(i=1;i <=5;i++)
{scanf( "%d ",&e);
insert(L,i,e);
}
print(L);
printf( "\n ");
printf( "Enter the delete seat: ");
scanf( "%d ",&j);
printf( "\n ");
del(L,j,&e);
print(L);
printf( "\n\n ");
}
------解决方案--------------------
楼主可以研究一下glib
协议是lgpl
------解决方案--------------------
任何一个数据结构的书上面都有关于这些结构体的定义概念以及程序,
用标准C实现的类似map list Vector的一组函数库,完全实现好像不怎么现实哦。
所以,其中的一个就可以了。
只要有插入 删除 排序 查找这几个函数就可以了。操作的数据对象就是char.
各位老大谁有积攒下来的可以发给我阿,谢谢。
demonljw@163.com
------解决方案--------------------
//线性链表插入,删除操作
#include <stdio.h>
#include <malloc.h>
typedef struct LNode
{int data;
struct LNode *next;
}LNode,*linklist;
int Init(linklist *L)
{*L=(linklist)malloc(sizeof(LNode));
(*L)-> next=NULL;
return 1;
}
int insert (linklist L,int i,int e)
{linklist p,s;
int j=0;
p=L;
while(p&&j <i-1)
{p=p-> next;j++;}
if(!p||j> i-1)
return 0;
s=(linklist)malloc(sizeof(LNode));
s-> data=e;
s-> next=p-> next;
p-> next=s;
return 1;
}
int del(linklist L,int i,int *e)
{linklist p,q;
int j=0;
p=L;
while(p-> next&&j <i-1)
{p=p-> next;j++;}
if(!p-> next||j> i-1)
return 0;
q=p-> next;
p-> next=q-> next;
*e=q-> data;
printf( "The deleted number:%d\n\n ",*e);
free(q);
return 1;
}
void print(linklist L)
{linklist p;
for(p=L-> next;p;p=p-> next)
printf( "%4d ",p-> data);
printf( "\n ");
}
void main()
{linklist L,p;
int i,e,j,t;
t=Init(&L);
printf( "%d\n\n ",t);
for(i=1;i <=5;i++)
{scanf( "%d ",&e);
insert(L,i,e);
}
print(L);
printf( "\n ");
printf( "Enter the delete seat: ");
scanf( "%d ",&j);
printf( "\n ");
del(L,j,&e);
print(L);
printf( "\n\n ");
}
------解决方案--------------------
楼主可以研究一下glib
协议是lgpl
------解决方案--------------------
任何一个数据结构的书上面都有关于这些结构体的定义概念以及程序,