Linux C链表

/*
linklist.c
 *
 *  Created on: 2013年11月12日
 *     
 */
#include "linklist.h"


void add(int val){
   Node *v = malloc(sizeof(Node));
   v->value = val;
   if(head == NULL){
  head = v;
  return;
   }
   Node* current = head;


   while(1){


  if(current->next == NULL){
  current->next = v;
  break;
  }
  current = current->next;
   }
   size++;
//   printf("the size of linklist:%d",size);
}
void travel(){
Node* current = head;
do{
printf("%d\n",current->value);
}while((current = current->next)!=NULL);
}
int del(Node *node){
return -1;
}
Node* get(int i){
printf("the size:%d\n",size);
if(i >= size){
printf("array out of index\n");
return NULL;
}
Node* current = head;
int index = 0;
while(index != i){
current = current->next;
if(++index == i) break;
}
printf("-----------------\n");
    return current;
}


void destroy(){
Node* current = head;
Node* nt = NULL;
while(current != NULL){
nt = current->next;
free(current);
current = nt;
}
}
int length(){
return size;
}
int main(){
int j = 0;
for(;j<10;j++)
add(j+1);
travel();
         destroy(); 
return -1;

}


头文件  linklist.h

/*
linklist.h
 *
 *  Created on: 2013年11月12日
 *      
 */


#ifndef LINKLIST_H_
#define LINKLIST_H_
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/****************
 * the node of the linklist
 */
typedef struct LinkNode{
int value;
struct LinkNode *next;
}Node;
/****************
 * represent the linklist
 */




static Node *head = NULL;
static unsigned int size = 1;
/*****add Node******/
void add(int val);
/*******remove node****/
int del(Node *node);
/*******get Node***/
Node* get(int i);
/******create link*/
void destroy();
/*******travel*****/
void travel();
/*****the size of linklist***/
int length();
#endif /* LINKLIST_H_ */ 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值