線性表的儲存結構包括順序儲存和鏈式儲存。順序儲存的元素,邏輯上相鄰的元素其物理位置上也相鄰,鏈式儲存的元素,邏輯上相鄰的元素物理位置上不一定相鄰。這裡以單向鍊錶為例。分別實現相應功能。
順序儲存:
class seqlist:ilistds
public seqlist():this(10)
public int getlength()
public void clear()
public bool isempty()
else//使用else邏輯更加清晰
}public void insert(t item, int index)
else
else
data[index] = item;
count++;}}
}public t delete(int index)
else
count--;
return temp;}}
public t getelem(int index)
else
}public int locate(t val)
}return -1;
}public t this[int index]
setelse}}
}鏈式儲存:
class linklist:ilistds
public int getlength()
else
return count;}}
public void clear()
public bool isempty()
else
temp.next=new node(item);}}
public void insert(t item, int index)
else
else
nodelocate = temp.next;
temp.next = new node(item);
temp.next.next = locate; }}
}public t delete(int index)
else
else
t data = temp.next.data;
temp.next = temp.next.next;
return data;}}
}public t getelem(int index)
else
else
t data = temp.data;
return data;}}
}public int locate(t val)
else
}return temp == null ? -1 : i;
}public t this[int index]
setelse
else
temp.data = value;}}
}}
} class node
public node(t data)
public node(nodenext)
public node()
public t data set }
public nodenext set }
}
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...
資料結構 線性表
參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...
資料結構 線性表
線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...