c语言数据结构之链表
来源:互联网 发布:人力资源教学软件 编辑:程序博客网 时间:2024/05/01 11:09
1 list.h
#ifndef _LIST_H
#define _LIST_H#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct list_node
{
void *data;
struct list_node * pre; //前
struct list_node* next;//后
}NODE;
typedef struct
{
NODE * head,*last;
int length;
}LIST;
LIST * initLIST();
int insertLIST(LIST * list,void * data,int size);
void print(LIST* list);
#endif
2.list.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "list.h"
//返回指针 ,初始化头尾两个哨兵节点
LIST * initLIST()
{
LIST * list=(LIST*)malloc(sizeof(LIST));
if(list==NULL) exit(0);
list->head =(NODE* )malloc(sizeof(NODE));
memset(list->head,0,sizeof(NODE));
list->last =(NODE* )malloc(sizeof(NODE));
memset(list->last,0,sizeof(NODE));
list->head->next=list->last;
list->last->pre=list->head;
list->length=0;
return list;
}
int insertLIST(LIST * list,void * data,int size)
{
NODE *node=(NODE*)malloc(sizeof(NODE));
node->data=malloc(size);
memcpy(node->data,data,size);
node->next=list->last;
node->pre=list->last->pre;
list->last->pre->next=node;
list->last->pre=node;
list->length++;
return 0;
}
void print(LIST* list)
{
NODE * p=list->head->next;
int a =list->length,i=0;
int *n=&a;
while(p)
{
n=(int*)(p->data);
i++;
printf("n=%d,i=%d\n",*n,i);
p=p->next;
}
}
3.main.cpp
#include "list.h"
int main()
{
int a[]={1,2,3};
LIST * lsit=initLIST();
for(int i=0;i<3;i++)
insertLIST(lsit,&a[i],sizeof(int));
print(lsit);
return 0;
}
- c语言数据结构之链表
- 数据结构之c语言链表
- C语言数据结构之双向链表
- C 语言 数据结构之双向链表
- c语言数据结构之通用链表
- C语言之数据结构
- C语言之数据结构
- 数据结构之链表的使用【C语言】
- 数据结构之---c语言实现双向链表操作
- 数据结构之双向链表(C语言实现)
- 数据结构(C语言)之链表(单、双链表)
- c语言数据结构之单向循环链表约瑟夫问题
- C语言数据结构双向链表之温故而知新
- 数据结构C语言实现之链栈
- 数据结构C语言实现之链队列
- 数据结构C语言实现之顺序表
- C语言数据结构之线性表
- C语言数据结构之线性表
- php文字水印,支持自动换行,自动截取(包括汉字)
- CMAKE的使用
- Android 实现Activity后台运行
- Configuring the debugger version of Flash Player
- 打开Windows 7 telnet客户端功能
- c语言数据结构之链表
- 关于安装mysql编译时“卡住"的说明
- ubuntu 挂载 windows 分区
- 关于问题解决的思考
- Mms 发送流程
- Xcode 4.2 下添加libxml2 包时报错问题解决
- 交通灯管理系统7千元面试题解题思路及其过程 笔记-----IT界最著名的IT讲师张孝祥讲解
- SYN_RECV状态相关
- OpenGL