Ordered Linked List ( 有序链表 )
typedef struct listNode *lstptr;
typedef struct listNode {
int data;
lstptr next;
};
以下是 副程式
(1) lstptr create( ):
输入n值(n<=10),然后建立有n个节点,
data由小到大排列的有序链结串列(ordered linked list)ordList。
你必须呼叫insert函数将每一数值插入有序串列。
(2) void insert(lstptr *first, int value):
输入value,先呼叫find函数判断value是否已存在?
value不存在(i)若无,产生新的节点并根据value将其插入有序串列中正确的位置。
value存在(ii)已存在,印出适当讯息。
(3) void delete(lstptr *first, int value):
输入value,先呼叫find函数判断value是否已存在?
value不存在(i)若无,印出适当讯息。
value存在(ii)已存在,删除节点。
(4) bool find(lstptr first, int value, *lstptr p, *lstptr q ):
判断value是否已存在?
value不存在(i)若无,return false。
value存在(ii)已存在,return true。指标 p为找到的节点位址,
指标q 指向p的前一个节点。
(5) void printlist(lstptr first):
显示每一节点的内容值,其结果为已排序的数列。
(6) void displaylist(lstptr first):
显示并观察每一节点的位址。有何发现?
typedef struct listNode *lstptr;
typedef struct listNode {
int data;
lstptr next;
};
以下是 副程式
(1) lstptr create( ):
输入n值(n<=10),然后建立有n个节点,
data由小到大排列的有序链结串列(ordered linked list)ordList。
你必须呼叫insert函数将每一数值插入有序串列。
(2) void insert(lstptr *first, int value):
输入value,先呼叫find函数判断value是否已存在?
value不存在(i)若无,产生新的节点并根据value将其插入有序串列中正确的位置。
value存在(ii)已存在,印出适当讯息。
(3) void delete(lstptr *first, int value):
输入value,先呼叫find函数判断value是否已存在?
value不存在(i)若无,印出适当讯息。
value存在(ii)已存在,删除节点。
(4) bool find(lstptr first, int value, *lstptr p, *lstptr q ):
判断value是否已存在?
value不存在(i)若无,return false。
value存在(ii)已存在,return true。指标 p为找到的节点位址,
指标q 指向p的前一个节点。
(5) void printlist(lstptr first):
显示每一节点的内容值,其结果为已排序的数列。
(6) void displaylist(lstptr first):
显示并观察每一节点的位址。有何发现?