//線性表的鏈式表示及實現
#include #include #include #include using namespace std;
#define ok 1
#define error -1
#define true 1
#define false 0
#define max_size 100
typedef int status;
typedef int elemtype;
typedef struct node
lnode, *linklist;
//在帶頭結點的單鏈線性表l中第i個位置之前插入元素e
status listinsert(linklist &l, int i, elemtype e);
//獲取單鏈表中第i個元素的值
status getelem(linklist l, int i, elemtype &e);
//在帶頭結點的單鏈線性表l中,刪除第i個元素,並由e返回其值
status listdelete(linklist &l, int i, elemtype &e);
//逆序輸入n個元素的值,建立代表頭結點的單鏈線性表l
void createlist(linklist &l, int n);
//將單鏈線性表輸出
void print(linklist l);
//將兩個有序鍊錶並為乙個有序鍊錶
void mergelist(linklist &la, linklist &lb, linklist &lc);
int main()
print(l);
int e;
getelem(l, 3, e);//獲取第三個位置的元素的值
printf("可輸出第三個位置的值為%d\n", e);
listdelete(l, 3, e);//刪除第三個位置的元素
printf("刪除後的遍歷:");
print(l);
linklist la, lb, lc;
la = (linklist)malloc(sizeof(lnode));
la->next = null;
lb = (linklist)malloc(sizeof(lnode));
lb->next = null;
createlist(la, 4);
createlist(lb, 7);
//以逆序建立鍊錶為例 la 11, 8, 5, 3; lb 20, 15, 11, 9, 8, 6, 2
mergelist(la, lb, lc);
print(lc);
return 0;
}//在帶頭結點的單鏈線性表l中第i個位置之前插入元素e
status listinsert(linklist &l, int i, elemtype e)
if(!pre || i<0)//i小於0或者大於表長加1
linklist q;
q = (linklist)malloc(sizeof(lnode));
q->next = pre->next;
pre->next = q;
q->data = e;
return ok;
}//獲取單鏈表中第i個元素的值
status getelem(linklist l, int i, elemtype &e)
if(!p || (j>i))//第i個元素不存在
e = p->data;//取第i個元素
return ok;
}//在帶頭結點的單鏈線性表l中,刪除第i個元素,並由e返回其值
status listdelete(linklist &l, int i, elemtype &e)
if(!p->next || (i < 1))
linklist q = p->next;
p->next = q->next;
e = q->data;
free(q);
return ok;
}//逆序輸入n個元素的值,建立代表頭結點的單鏈線性表l
void createlist(linklist &l, int n)
}//將單鏈線性表輸出
void print(linklist l)
printf("\n");
}//將兩個有序鍊錶並為乙個有序鍊錶
/** 已知單鏈線性表la和lb的元素按值非遞減排列
歸併la和lb得到新的單鏈線性表lc,lc也按值非遞減排列*/
void mergelist(linklist &la, linklist &lb, linklist &lc)
else
}pc->next = pa?pa:pb;// 插入剩餘段
free(lb);//釋放lb頭結點
}
線性表的鏈式表示和實現(鏈式)
課程名 資料結構 實驗目的 1 掌握線性表的定義 2 掌握線性表的基本操作,如建立 查詢 插入和刪除等。實驗要求 定義乙個包含學生資訊 學號,姓名,成績 的順序表和煉表,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資訊 2 逐個顯示學生表中所有學生的相關資訊 3 根據姓名進行查詢,返回此學生...
線性表的鏈式表示
上篇文章是線性表的順序表示,本篇便是線性表的鏈式表示。主函式的步驟包括,輸入線性表資料,對鍊錶的刪除,插入。利用指標進行對鍊錶的訪問。同時為了增加程式可讀性,將結構體定義為lnode,linklist。include 線性表的鏈式表示 using namespace std typedef stru...
線性表的鏈式表示和實現
標頭檔案 函式的宣告 include include include include typedef int elemtype typedef struct node listnode,linklist listnode鍊錶的結點型別,linklist指向鍊錶結點的指標型別 void initlis...