《血染鐘樓》讀心者能力及玩法技巧 血染鐘樓讀心者怎麼玩
阿新 • • 發佈:2022-04-02
2022-04-04-16:59:28
什麼是線性表????
多項式表示問題啟示:
1.同一個問題可以有不同的表示形式
2.有一類共性問題:有序線性序列的組織和管理
線性表:由同類型資料元素構成有序序列的線性結構
表中元素個數為線性表的長度
線性表沒有元素時,為空表
表起始位置為表頭,結束位置為表尾
/*1.初始化(建立空的順序表)*/ List MakeEmpty() { List PtrL; PtrL = (List)malloc(sizeof(struct LNode)); PtrL->Last = -1; return PtrL; } /*2.查詢*/ int Find(ElementType X,List PtrL) { int i = 0; while(i <= PtrL->Last && PtrL->Data[i] != X) i++; if(i > PtrL->Last) return -1;/*如果沒有找到,返回-1*/ else return i;/*找到後返回的是儲存位置*/ } /*3.插入(第i(1<i<n+1)個位置上插入一個值X的新元素)*/ /*先移動,在插入*/ void Insert(ElementType X,int i,List PtrL) { int j; if(PtrL->Last == MAXSIZE-1) { /*表空間已滿,不能插入*/ printf("表滿"); return; } if(i<1||i>PtrL->Last+2) { /*檢查插入位置的合法性*/ print("位置不合法"); return: } for ( j=PtrL->Last;j>=i+1;j--) PtrL->Data[j+1] = PtrL->Data[j];/*將i到n倒序向後移動*/ PtrL->Data[i-1] = X;/*新元素插入*/ PtrL->Last++;/*Last任指向最後元素*/ return: } /*4.刪除元素*/ viid Delete(int i,List PtrL){ int j; if(i<1||i>Ptrl->Last+1){/**檢查空表及刪除位置的合法性/ printf("不存在第d%個元素",i); return; } for(j = i;j<=PtrL->Last;j++) PtrL->Data[j-1]=PtrL->Data[j];/**將i+1到n順序向前移/ PtrL->Last--;/**PtrL任指向最後元素/ return; }
線性表的鏈式儲存及實現:
不要求邏輯上相鄰的兩個元素物理上也相鄰
插入刪除不需要移動資料元素
/*1.求表長*/
int Length(List PtrL)
{ List p = PtrL;/*p指向表的第一個結點*/
int j = 0;
while(p){
p = p->Next;
j++;/*當前p指向的是第j個結點*/
}
return j;
}