目錄
一、順序表
二、單鏈表
三、迴圈鍊錶和雙向鍊錶簡單介紹
【演算法步驟】
【演算法描述】
void initlist(sqlist &l)
【演算法步驟】
【演算法描述】
int getelem(sqlist l,int i,elemtype &e)
【演算法步驟】
【演算法描述】
int locateelem(sqlist l,elemtype e)
【演算法步驟】
【演算法描述】
void listinsert(sqlist &l,int i,elemtype e)
【演算法步驟】
【演算法描述】
void listdelete(sqlist &l,int i)
【演算法步驟】
【演算法描述】
void initlist(linklist &l)
【演算法步驟】
p指向下乙個結點
計數器j相應加1
【演算法描述】
int getelem(linklist l, int i, elemtype &e)
if(!p || j>i) return error; //第i個元素不存在
e=p->data; //取第i個元素,e帶回
return e;
}
【演算法步驟】
【演算法描述】
lnode *locateelem_l (linklist l,elemtype e)
【演算法步驟】
【演算法描述】
void listinsert(linklist &l,int i,elemtype e) //尋找第i−1個結點
if(!p||j>i−1) return error; //插入位置不合理
s=new lnode; //生成新結點s
s->data=e; //將結點s的資料域置為e
s->next=p->next; //將結點s插入l中
p->next=s;
}
【演算法步驟】
【演算法描述】
void listdelete(linklist &l,int i,elemtype &e)
if(!(p->next)||j>i-1) return error; //刪除位置不合理
q=p->next; //臨時儲存被刪結點的位址,以備釋放空間
p->next=q->next; //修改前驅結點的指標域
delete q; //釋放刪除結點的空間
}
【演算法步驟】
【演算法描述】
void createlist_f(linklist &l,int n)
}
【演算法步驟】
【演算法描述】
void createlist_l(linklist &l,int n)
}
單鏈表迴圈條件: 單向迴圈鍊錶迴圈條件:結構體:p!=null p!=l (不帶頭結點)
p->next!=null p->next!=l (帶頭結點)
typedef struct dulnodedulnode, *dlinklist
status listinsert_dul(dulinklist&l,int i,elemtype e)
status listdelete_dul(dulinklist &l,int i)
基礎資料結構 線性表實現
以下 是對基礎資料結構中的線性表的順序實現,在vs2012下沒問題 include define maxlength 20 struct list 增加元素 int insert list l,int e,int index l.data index e l.length return 1 刪除元素...
基礎資料結構 線性表 順序表
線性表是n個資料元素的有限序列,資料之間存在順序關係,一般同乙個線性表屬於同一類資料物件 例如a z的字母表 線性表存在唯一乙個首位元素和末位元素,除了第乙個元素和最後乙個元素,每個元素存在著乙個前驅和乙個後繼 a的後繼是b,b的前驅是a 線性表主要有順序表和煉表兩種儲存形式,線性表是一種邏輯結構,...
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...