`
Elyric
  • 浏览: 14144 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

数据结构之单链表

阅读更多
结点的定义,每个结点都由数据域和指针域构成,其实指针域的指针指向下一个结点

typedef struct _node {
void *data;//数据域
struct _node *next;//指针域
}NODE;

链表的结构定义

typedef struct{
NODE *head;
NODE *last;
int size;
}LIST;
头指针和尾指针以及链表的大小

初始化一个结点
LIST *InitList(){
LIST *l=(LIST *)malloc(sizeof(LIST));
if(l==NULL){
exit(0);
}
memset(l,0,sizeof(LIST));
return 1;
}
void *memset(void *s,int c,size_t n)   总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。
memset();将l里的内容赋空值

在表的结尾插入一个新结点
int InsertList(LIST *l,void *data,int size){
if(l==NULL || data==NULL ){
return 0;
}
NODE *n=(NODE *)malloc(sizeof(NODE));
if(n==NULL){
return 0;
}
n->data=mallco(size);
if(n->data==NULL){
return 0;
}
memcpy(n->data,data,size);
n->next=NULL;
if(l->head==NULL){
l->head=n;
}
else{
l->last->next=n;
}
l->last=n;
l->length++;
return 1;
}

还有一个查找结点的函数,稍后送上。。。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics