1 實驗專案一 線性表的基本操作及其應用(兩次實驗課完成)
definition of sequential list:
typedef struct sqlist;
definition of linked list:
typedef struct lnodelnode,*linklist;
實驗要求:
(1) 程式要新增適當的注釋,程式的書寫要採用縮排格式。
(2) 程式要具在一定的健壯性,即當輸入資料非法時,程式也能適當地做出反應,如插入刪除時指定的位置不對等等。
(3) 程式要做到介面友好,在程式執行時使用者可以根據相應的提示資訊進行操作。
(4) 上傳源程式到課堂派。順序表的源程式儲存為sqlist.cpp,鍊錶的源程式儲存為linklist.cpp。
#include
using namespace std;
struct student//定義學生資訊的結構體
;struct lnode
;//鍊錶的節點
struct sqlist
list;
//定義鍊錶
lnode *head,
*rail;
//rail指向鍊錶的最後乙個學生的資訊
void
insert
(sqlist &list)
//插入學生的資訊
else
//插入其他節點
}return;}
void
print
(sqlist &list)
//列印學生的資訊
return;}
void
delete
(sqlist &list)
if(pre==
null
) cout<<
"刪除位置有誤"
return;}
void
find
(sqlist &list)
//找到學生的資訊,並列印出來
if(pre==
null
)//找到最後也沒有找到
cout<<
"查無此人"
cout
''
void
single_print
(sqlist &list)
//由位置列印學生的資訊
if(pre==
null
) cout<<
"位置有誤"
cout
''
''
void
single_insert
(sqlist &list)
//單個插入
if(pre==
null
) cout<<
"插入位置有誤"
return;}
intmain()
return0;
}
線性表之鍊錶
鏈式的線性表適用於經常進行刪除,插入操作的工作,如 訂票系統。鍊錶是用乙個乙個的節點連線起來的表,在物理上不是連續的,在邏輯上是連續的。通過節點間的指標指向來表示節點間的關係。所以在進行鍊錶操作之前,要先定義乙個節點結構。節點結構包含兩個東西 資料域,指標域。資料域就是用來存放資料的,指標域是用來表...
線性表之鍊錶
1,為什麼要使用鍊錶 1,順序表的長度是固定的,如果超出分配的長度就會造成溢位,如果存放的資料太少則會造成空間浪費。2,在插入元素和刪除元素時 尤其不在尾部時 會移動大量的元素,造成效能和效率低下。基於以上問題,使用鍊錶可以很好地避免順序表中出現的問題。這也是我們要使用鍊錶的原因。2,鍊錶的儲存結構...
線性表之鍊錶
1.初始化 void initlist list plist assert plist null if plist null plist data 不使用 plist next null 2.頭插 bool insert head list plist,int val 時間複雜度為o 1 node ...