1.順序表的求元素值:
bool GetElem(SqList *L, int i, ElemType &e)//求線性表中某個資料元素值{if (i < 1 || i > L -> length)return false;//參數錯誤時返回falsee = L -> data[i - 1];//取元素值return true;//成功找到元素時返回true}
2.單鏈表的求元素值:
bool GetElem(LinkList *L, int i, ElemType &e)//求線性表中某個資料元素值{int j = 0;LinkList *p = L;//p指向前端節點,j置為0(即前端節點的序號為0)while (j < i && p != NULL)//找第i個節點{j++;p = p -> next;}if (p == NULL)//不存在第i個資料節點,返回0return false;else//存在第i個資料節點,返回1{e = p -> data;return true;}}
3.雙鏈表的求元素值:
bool GetElem(DLinkList *L, int i, ElemType &e)//求線性表中某個資料元素值{int j = 0;DLinkList *p = L;while (j < i && p != NULL){j++;p = p -> next;}if (p == NULL)return false;else{e = p -> data;return true;}}
4.迴圈單鏈表的求元素值:
bool GetElem(LinkList *L,int i, ElemType &e)//找指定位置的元素{int j = 0;LinkList *p;if (L -> next != L)//單鏈表不為空白表時{if (i == 1){e = L -> next -> data;return true;}else//i不為1時{p = L -> next;while (j < i - 1 && p != L){j++;p = p -> next;}if (p == L)return false;else{e = p -> data;return true;}}}else//空表返回falsereturn false;}
5.迴圈雙鏈表的求元素值:
bool GetElem(DLinkList *L, int i, ElemType &e)//求線性表中某個資料元素值{int j = 0;DLinkList *p;if (L -> next != L)//雙鏈表不為空白表時{if (i == 1){e = L -> next -> data;return true;}else//i不為1時{p = L-> next;while (j < i - 1 && p != L){j++;p = p -> next;}if (p == L)return false;else{e = p -> data;return true;}}}else//雙鏈表為空白表時return false;}
6.順序棧的取棧頂元素:
bool GetTop(SqStack *s, ElemType &e)//取棧頂元素{if (s -> top == -1)//棧為空白的情況,即棧下溢出return false;e = s -> data[s -> top];//取棧頂指標元素的元素return true;}
7.鏈棧的取棧頂元素:
bool GetTop(LiStack *s, ElemType &e) //取棧頂元素{if (s -> next == NULL)//棧空的情況return false;e = s -> next -> data;return true;}
8.順序隊列的求出隊元素值:
bool deQueue(SqQueue *&q, ElemType &e)//出隊{if (q -> front == q -> rear)//隊空下溢出return false;q -> front = (q -> front + 1) % MaxSize;e = q -> data[q -> front];return true;}
9.順序串的求值:
SqString SubStr(SqString s,int i,int j){SqString str;int k;str.length = 0;if (i <= 0 || i > s.length || j < 0 || i + j - 1 > s.length)return str;//參數不正確時返回空串for (k = i - 1; k < i + j - 1; k++) //將s.data[i..i+j]複製到strstr.data[k - i + 1] = s.data[k];str.length = j;return str;}