#define maxsize 20 // 儲存空間
#define init ele //假設list為 int型
typedef strctmylist
// 返回0和1代表有或者沒有,也可以返回list 對應型別資料的指標
int getele(mylist l, int i, ele *e)
int insertele(mylist *l, int i, ele e)
l->data[i-1]=e;
l->length++;
return 0;
}
int deleteele (mylist *l, int i, ele *e*)
l->length--;
return 1;
}
typedef struct node
node;
typedef struct node *linklist
int getele (linklist l, int i, ele *e*)
if (!p || j>i) // 要查詢的第i個元素不存在
return 1;
*e = p->data;
return 0;
}
在l中第i個位置之前插入新的元素e
int insertele (linklist *l, int i, ele e)
if(!p || j>i) // 第i個元素不存在
return 1;
s = (linklist)malloc(sizeof(node)) //生成新節點
// 賦值操作
s->data = e;
s->next = p->next;
p->next = s;
return 0;
}
刪除l的第i個元素,並用e返回其值
int deleteele (linklist *l, int i, ele *e)
單鏈表的整表建立和刪除隨機生成n個元素,建立帶頭結點的單鏈表l
// 頭插法
void createele(linklist *l, int n)
}// 尾插法
void createele(linklist *l, int n)
r-next = null; //鍊錶結束
]
將線性表清空
int clearele(linklist *l)
(*l)->next=null; //頭結點指標為空
return 0;
}
靜態鍊錶
迴圈鍊錶
1.記錄頭節點 p = reara->next; //這裡用rear的方式表示頭節點
2.a的尾結點指向b的第乙個節點(此時已經不需要b的頭節點) reara->next = rearb->next->next;
3.b的尾結點指向a的頭節點 rearb->next = p;
4.free(p)
雙向迴圈鍊錶typedef struct dounode
dounode
typedef int ele;
typedef struct
stack;
int push (stack *s, ele e)
s->top++;
s->data[s->top] = e;
return 0;
}
刪除s棧頂元素,返回值e
int pop (stack *s, ele *e*)
*e = s->data[s->top];
s-=>top--;
return 0;
}
兩個棧共用乙個空間結構typedef struct
doustack;
int push (doustack *s, ele e, int stacknumber)
else if (stacknumber ==2)
return 0;
}
資料結構(一)
資料結構是由某一資料元素的集合和該集合中資料元素之間的關係組成的,記為 data structure 資料結構的核心技術是分解與抽象。通過分解可以劃分出資料的層次 再通過抽象就能得到資料的邏輯結構 依據資料元素之間的關係的不同,可以分為線性結構和非線性結構。1.線性結構又稱作線性表。線性表中的每乙個...
資料結構 (一)
1 資料結構是計算機組織和儲存資料的方式。2 資料 資料元素 資料項 最小的標識單位 3 四種邏輯結構 集合 線性結構 樹形結構 圖結構。4 資料儲存結構 順序儲存方式 鏈式儲存方式 索引儲存方式 雜湊儲存方式。5 涉及到的運算 建立 查詢 讀取 插入 刪除等。6 具有線性結構的有 線性表 棧 佇列...
資料結構 一
要求 1掌握各類基本資料結構型別和相應的儲存結構 2提高閱讀和編寫演算法的能力 3能針對給定問題,選擇相適應的資料結構,並能設計和分析演算法 1.2基本概念和術語 資料 是對客觀事物符號的表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。資料元素 是資料的基本單位。乙個資料元素...