ADT 單鏈表

2021-08-10 12:12:59 字數 1904 閱讀 1373

#include#define     true                1

#define false 0

#define ok 1

#define error 0

#define overflow -1

using namespace std;

typedef int elemtype;

typedef int status;

typedef struct lnode lnode, *linklist;

//建立單鏈表

status listcreater_l(linklist &l)

//清空單鏈表

status listclear_l(linklist &l)

//銷毀單鏈表

status listfree_l(linklist &l)

//單鏈表輸入

status listinput_l(linklist &l)

return ok;

}//單鏈表遍歷輸出

void listprint_l(linklist &l)

else cout << ' ' << curptr->data;

curptr = curptr->next;

}cout << endl;

}//單鏈表插入元素

status listinsert_l(linklist &l, int pos, elemtype e)

if (cnt < pos) return error;

tmpptr = (lnode *)malloc(sizeof(lnode));

if (!tmpptr)exit(overflow);

tmpptr->data = e;

tmpptr->next = curptr;

reerptr->next = tmpptr;

return ok;

}//單鏈表刪除元素

status listdelete_l(linklist &l, int pos, elemtype &e)

if (cnt < pos || !curptr) return error;

e = curptr->data;

reerptr->next = curptr->next;

return ok;

}//單鏈表改值

status listsetval_l(linklist &l, int pos, elemtype e)

if (cnt < pos || !curptr)return error;

curptr->data = e;

return ok;

}//單鏈表逆序

void listreverse_l(linklist &l)

}線性表元素排序 (<)

//void listsort_sq(sqlist &l)

// *(l.elem + j) = t;

// }

//}//單鏈表鎖定元素位置

int listlocate_l(linklist &l, elemtype e)

return 0;

}//判斷表空

status isempty_l(linklist &l)

//單鏈表查詢元素個數

int listcount_l(linklist &l, elemtype e)

return cnt;

}//返回表長

int listlength_l(linklist &l)

return len;

}

單鏈表ADT實現

目錄 單鏈表的定義 單鏈表的實現 鍊錶使用 linkedlist.h檔案 ifndef linkedlist h define linkedlist h include define ok 1 define error 0 typedef int elemtype typedef int statu...

單鏈表ADT模板簡單應用演算法設計 有序單鏈表的提純

問題描述 目的 使用c 模板設計單鏈表的抽象資料型別 adt 並在此基礎上,使用單鏈表adt的基本操作,設計並實現單鏈表的簡單演算法設計。內容 1 請使用模板設計單鏈表的抽象資料型別。由於該環境目前僅支援單檔案的編譯,故將所有內容都集中在乙個原始檔內。在實際的設計中,推薦將抽象類及對應的派生類分別放...

資料結構學習 單鏈表ADT(程式化)

看了一點網上的 結合自己對鍊錶的理解。將對鍊錶常用的操作集合程式化如下 include includetypedef struct node list list list add list p,int val 此處是二級指標 void list print list p list list inse...