/*
專案名稱:雙向鍊錶的建立與基本操作
編譯環境:vc++ 2008
作者相關:。。。
最後修改:2019.6.19
學習目標:判空、求長、獲取元素位置、返回某個位置的元素、插入元素、刪除元素、清空鍊錶、銷毀鍊錶
注意事項:1.測試所有功能是否正常
2.true/false不是資料型別,不能用typedef,要使用define
3.null本身沒有prior和next
*/#include #include #define ok 1
#define error 0
#define true true
#define false false
typedef int elemtype;
typedef bool status;
typedef struct dulnodedulnode,*dulinklist;
status create_dulnode(dulinklist *l);
status init_dul(dulinklist *l);
status empty_dul(dulinklist l);
int length_dul(dulinklist l);
status insert_dul(dulinklist *l,int i,elemtype e);
status getelem_dul(dulinklist l,int i,elemtype *e);
int locate_dul(dulinklist l,elemtype e);
status delete_dul(dulinklist *l,int i,elemtype *e);
status clear_dul(dulinklist *l);
status destroy_dul(dulinklist *l);
void out_list(dulinklist l);
int main()
out_list(l1);
getelem_dul(l1,4,&e);
printf("第4個元素是: %d \n\n",e);
int k = locate_dul(l1,7);
printf("元素7的位置是: %d\n\n",k);
delete_dul(&l1,3,&e);
printf("刪除的第3個元素為: %d\n\n",e);
out_list(l1);
if(clear_dul(&l1))
printf("雙向鍊錶已清空!\n\n");
if(empty_dul(l1))
printf("雙向鍊錶為空!\n\n");
else
printf("雙向鍊錶非空!\n\n");
if(destroy_dul(&l1))
printf("鍊錶已被銷毀!\n\n");
return 0;
}status create_dulnode(dulinklist *l)
status init_dul(dulinklist *l)
}status empty_dul(dulinklist l)
int length_dul(dulinklist l)
return length;
}status insert_dul(dulinklist *l,int i,elemtype e)
dulinklist p = *l;//*l與p是同型別的指標,進行的是賦值操作,相當於p引用*l
dulinklist s;
int j = 1;
while(p->next!=null&&jnext;
++j;
} if(create_dulnode(&s))//建立結點成功
else
}else//建立結點失敗
return error;
return ok;
}//e返回鍊錶中第i個資料元素的值
status getelem_dul(dulinklist l,int i,elemtype *e)
*e = p->data;
return ok;
}//獲取元素的位置
int locate_dul(dulinklist l,elemtype e)
} return k;
}//刪除第i個元素的位置
status delete_dul(dulinklist *l,int i,elemtype *e)
dulinklist p = *l;//相當於p引用*l
建立雙向鍊錶
今天第一次寫部落格,所以說呢,請大家多多包含,首先就來個建立乙個雙向鍊錶吧!接下來還有向雙向鍊錶的插入和刪除的文章,請大家多多提意見啊!include include include struct dunode head int main p head next for i 0 i 5 i retu...
雙向迴圈鍊錶的建立及操作
專案名稱 雙向迴圈鍊錶的建立與基本操作 編譯環境 vc 2008 作者相關 最後修改 2019.6.19 學習目標 判空 求長 獲取元素位置 返回某個位置的元素 插入元素 刪除元素 清空鍊錶 銷毀鍊錶 注意事項 1.測試所有功能是否正常 include include define ok 1 def...
雙向鍊錶的操作
include using namespace std 列印選項 void printtheselect typedef struct dulnode dulnode,dulinklist 初始化雙向鍊錶 void initdlist dulinklist l cout 雙向鍊錶構造完畢 n 列印雙...