我們先給出線性表的相關資料結構的定義(嚴蔚敏 清華大學資料結構(c語言版))
#define init_list_size 100
#define listincrement 10
typedef int elemtype;
typedef int status;
#define true 1
#define false 0
#define error 0
#define ok 1
#define infeasible -1
#define overflow -2
typedef struct sqlist;
函式介面的基本操作如下:
status initlist(sqlist& l);//構造乙個空的線性表
status createlist(sqlist &l, int n) ;//建立乙個線性表
status emptylist(sqlist l) ;//判空
status destorylist(sqlist l) ;//銷毀線性表
tatus riorelem(sqlist l, int cur_e, int &pre_e) ;//cur_e是l的資料元素,且不是第乙個,則用pre_e返回它的直接前驅
status nextelem(sqlist l, int cur_e, int &next_e);//cur_e是l的資料元素,且不是最後乙個,則用pre_e返回它的直接後繼
status deletelistsqlist &l, int i, int &e) ;//刪除第i個元素並用e返回其值
status listinsert(sqlist &l, int i, int e) ;//在第i個元素之前插入e
status bubblesortlist(sqlist &l);//對鍊錶進行排序
status mergelist(sqlist la, sqlist lb,sqlist &lc); //合併鍊錶la和lb
需要注意的是由於將兩個線性表歸併的前提是兩個鍊錶進行排序,排序使用的氣泡排序第一層迴圈使用n-1次。
這裡的所有**均採用c語言編寫,c++的**將在後面給出
由於操作比較簡單,直接給出**:
#define true 1
#define false 0
#define error 0
#define ok 1
#define infeasible -1
#define overflow -2
typedef struct sqlist;
status initlist(sqlist& l)//構造乙個空的線性表
status createlist(sqlist &l, int n)
return 0;
}status destorylist(sqlist l)
status clearlist(sqlist l)
status emptylist(sqlist l)
status getelem(sqlist l, int i, int &e)
int equal(int p, int e)
status locateelem(sqlist l, int e)
status riorelem(sqlist l, int cur_e, int &pre_e)
return ok;
}status nextelem(sqlist l, int cur_e, int &next_e)
return ok;
}status listinsert(sqlist &l, int i, int e)
int *q = &(l.elem[i-1]);
int *p = &(l.elem[l.length - 1]);
for (p; p >= q; --p)
*q = e;
++l.length;
printf("插入成功\n");
return ok;
}status deletelist(sqlist &l, int i, int &e)
--l.length;
printf("刪除成功\n");
return ok;
}int print(sqlist l)
printf("\n");
return ok;
}status bubblesortlist(sqlist &l)
} }printf("排序完成\n");
線性表基本操作
線性表基本操作,暑假把大一的 練習一遍。多多指教,謝謝 include include define true 1 define false 0 define ok 1 define error 0 define overflow 1 define list init size 100 typede...
線性表基本操作
線性表的基本操作,靜態分配實現 include include using namespace std define maxsize 50 typedef int elemtpye 靜態分配 typedef structsqlist 動態分配 插入元素,i代表插入的位置,從0開始 bool list...
線性表基本操作
程式名稱 線性表 編譯環境 vc 6.0 作者相關 最後修改 2019.5.10 學習目標 1.如何建立線性表 2.掌握線性表的基本操作 初始化 判斷空表 獲取某位置元素 插入 刪除元素 清空表 合併 輸出 常見錯誤 1.if後有兩條或兩條以上語句時,要加括號 2.return的使用,用在不恰當的地...