链表的简单实现(单向、双向)
题目描叙:输入10个数字,输出从小到大、从大到小的序列,使用双向链表实现。
思路:用双向链表实现难点是在于插入的数据为最大或最小值时,应该添加为头节点或尾节点。从小到大,从大到小遍及分别是从头节点开始、从尾节点开始。
c语言代码:
#include <stdio.h>
#include<stdlib.h>
typedef struct listNode{
struct listNode *prev;
struct listNode *next;
int value;
}listNode;
typedef struct lists{
listNode *head;
listNode *tail;
unsigned long len;
}lists;
lists *listCreate(void){
lists *l=(lists*) malloc(sizeof(lists));
l->head=NULL;
l->tail=NULL;
l->len=0;
return l;
}
lists *listAddNodeTail(lists *lists,int value){
listNode * node=(listNode*)malloc(