實驗1: 順序表基本操作
一、實驗目的
1.學會定義線性表的順序儲存型別,實現c程式的基本結構,對線性表的一些基本操作和具體的函式定義。
2.掌握順序表的基本操作,實現順序表的插入、刪除、查詢以及求並集等運算。
3.掌握對多函式程式的輸入、編輯、除錯和執行過程。
二、實驗要求
1.預習c語言中結構體的定義與基本操作方法。
2.對順序表的每個基本操作用單獨的函式實現。
3.編寫完整程式完成下面的實驗內容並上機執行。
4.整理並上交實驗報告。
三、實驗內容:
1.編寫程式實現順序表的下列基本操作:
(1)初始化順序表la。
(2)將la置為空表。
(3)銷毀la。
(4)在la中插入乙個新的元素。
(5)刪除la中的某一元素。
(6)在la中查詢某元素,若找到,則返回它在la中第一次出現的位置,否則返回0。
(7)列印輸出la中的元素值。
2.編寫程式完成下面的操作:
(1)構造兩個順序線性表la和lb,其元素都按值非遞減順序排列。
(2)實現歸併la和lb得到新的順序表lc,lc的元素也按值非遞減順序排列。
(3)假設兩個順序線性表la和lb分別表示兩個集合a和b,利用
union_sq操作實現a=a∪b。
四、思考與提高
假設兩個順序線性表la和lb分別表示兩個集合a和b,如何實現a=a ∩b ?
* 01_順序表.cpp -- 順序表基本操作
* 對順序表的每個基本操作都用單獨的函式來實現
* 水上飄 2023年寫
// ds01.cpp : 定義控制台應用程式的入口點。
#include "stdafx.h"
#include
#include
#include
#include
#define list_init_size 100
#define listincrement 10
using namespace std;
typedef struct sqlist;
//構造乙個空的線性表
sqlist initlist( sqlist &l )
//給線性表隨機賦值
void start( sqlist &l, int a )
//輸出線性表的值
void output( sqlist &l )
cout << endl ;
}//使線性表按值非遞減排列
void notdegression( sqlist &l, int a )
n-- ;
a-- ;
}}//歸併la和lb,得到元素也按非遞減排列的lc
void merger( sqlist &la, sqlist &lb, sqlist &lc )
while( pa <= pa_last )
*pc++ = *pa插入la的剩餘元素
while( pb <= pb_last )
*pc++ = *pb插入lb的剩餘元素
}//實現a = a ∪ b
void union_sq( sqlist &la, sqlist &lb )
pa++ ;
}pa_last = la.elem + la.length - 1 ;
while( pb <= pb_last將lb的元素插入到la中
else
pb++ ;
pa = la.elem ;
pa_last = la.elem + la.length - 1 ;
}}int main( )
資料結構之順序表操作實驗
實驗二 順序表的基本操作 a include include define list init size 100 define listincrement 10 typedef char elemtype typedef structsqlist void initlist sqlist l l l...
資料結構實驗三順序棧基本操作
課內實驗任務書 年月日實驗三順序棧的基本操作 一 實驗目的 1.了解順序棧的結構特點及有關概念 2.理解順序棧的儲存結構 3.掌握順序棧的基本操作演算法。二 實驗內容 建立順序棧,完成順序棧的基本操作 初始化 入棧 出棧 輸出 銷毀,置棧空 求棧長 判順序棧是否為空 棧滿 取棧頂元素。三 實驗要點及...
資料結構順序表實驗報告
系專業 2008級 01 班 姓名學號 2010年1 0月 9日 define maxsize 100 include include typedef int elemtype typedef struct sqlist void initlist sqlist l void creatsqlist...