#include<stdio.h>
#define ERROR 0
#define Status int
#define SUCCESS 1
typedef struct Node{
int data;
struct Node* next;
struct Node* pro;
}*DLinkedList;
void initListNode(DLinkedList &list){
list = new Node;
list->next = NULL;
list->pro = NULL;
}
Status isEmpty(DLinkedList list){
return list->next == NULL?1:0;
}
Status addElem(DLinkedList &list,int data){
DLinkedList head = list;
while(head->next != NULL){
head = head->next;
}
DLinkedList temp = new Node;
temp->data = data;
temp->next = NULL;
temp->pro = head;
head->next = temp;
return SUCCESS;
}
Status get(DLinkedList list,int index,int &data){
if(isEmpty(list)){
return ERROR;
}
DLinkedList head = list;
for(int i=0;i<index;i++){
head = head->next;
if(head == NULL){
data = -1;
return ERROR;
}
}
data = head->data;
return SUCCESS;
}
int main(){
DLinkedList list;
initListNode(list);
addElem(list,1);
addElem(list,2);
addElem(list,3);
int data;
get(list,1,data);
printf("%d\n",data);
get(list,2,data);
printf("%d\n",data);
get(list,3,data);
printf("%d\n",data);
get(list,4,data);
printf("%d\n",data);
}
C/C++语言实现数据结构系列(八)——双链表实现
最新推荐文章于 2023-08-04 18:22:09 发布