如何用數組建立線性表主程序,在其中實現元素的插入,刪除和查找操作這是老師給我們的作業,我現在學的是數據結構,線性表內容

熱心網友

#include //實現順序表的基本操作using namespace std;#define MaxLen 50 //順序表中最多的元素的個數typedef int elemtype;typedef elemtype sqlist[MaxLen]; int create(sqlist A) //創建順序表(返回順序表的元素個數){int i, n;cout n;for (i = 0; i A[i];}return n;}void disp(sqlist A, int n) //輸出一個順序表{int i;cout n)cout = i; j--)A[j+1] = A[j]; //后移A[i] = x; n++; //順序表長度增1}return n;}int del(sqlist A, int n, int i) //刪除第i個元素(從0數起){int j;if (i n - 1)cout << "i值上溢或下溢" << endl;else{for (j = i; j < n - 1; j++)A[j] = A[j+1]; //前移覆蓋n--;}return n;}int find(sqlist A, int n, elemtype x) //查找x{int i = 0;while (i < n && A[i] != x)i++;if (i < n) return i;else return -1;}//測試void main(){sqlist A;int n1 = create(A);disp(A, n1);int n2 = ins(A, n1, 2, 88);disp(A, n2);int n3 = del(A, n2, 2);disp(A, n3);cout << "所在位置: " << find(A, n3, 3) << endl;}。

熱心網友

你說的太籠統了啊~~數組是靜態數組,意思就是順序存儲結構的靜態數組中元素的插入刪除是么?這個好象在數據結構的書里有寫吧。靜態數組定義 #define LIST_INIT_SIZE 100 //線形表存儲空間的初始分配#define LISTINCREMENT 10 //線形表存儲空間分配增量typedef struct{ ElemType *elem; //存儲空間基址 int length; //當前長度 int listsize; //當前分配的存儲容量(sizeof(Elemtype)為單位)}sqlist;舉個刪除的例子:Status ListDelete_Sq(Sqlist&L,int i,Elemtype &e){//在順序線形表L中刪除第i個元素,并用e返回其值//i的合法值為1L。Length)) return ERROR; //i值不合法p=&(L。elem[i-1]); //P為被刪元素的位置e=*p; //被刪除元素的值賦給eq=L。elem+L。length-1; //表尾元素的位置for(++p;p<=q;++p)*(p-1)=*p //被刪元素之后的元素左移--L。length; //表長-1return ok;}//Listdelete_Sq插入,查找你想要的話另外再給。寫這么多又準確,采納我的答案吧。。