線性表鏈式儲存結構的建立、刪除最小值結點(值唯一)、刪除某個指定值(不唯一)、就地逆置、反向輸出、遞增排序、刪除重複結點、根據奇偶序號劃分成兩個帶頭結點的單鏈表。
#include "stdio.h"
#include "stdlib.h"
typedef struct lnode
lnode, *llist;
void create(llist l); //建立鍊錶
void delete_min(llist l); //刪除最小值結點,該值唯一
void delete_same(llist l, int x); //刪除某個指定值,且該值可能不唯一
void reverse(llist l); //就地逆置
void r_print(llist l); //反向輸出
void sort(llist l); //遞增排序
void delete_allsame(llist l); //刪除數值重複的元素
void divide(llist l); //根據奇偶序號劃分成兩個單鏈表
int main()
void create(llist l)
while(!q);
q->data = a;
p->next = q;
p = p->next;
scanf("%d", &a);
} p->next = null;
printf("建立後的單鏈表:\n");
for(p = l->next; p != null; p = p->next)
printf("%d ", p->data);
printf("\n");
}void delete_min(llist l)
printf("鍊錶中最小值為%d。\n", min);
}void delete_same(llist l,int x)
else
}for(p = l->next; p != null; p = p->next)
printf("%d ", p->data);
printf("\n");
}void reverse(llist l)
for(p = l->next; p != null; p = p->next)
printf("%d ", p->data);
printf("\n");
}void r_print(llist l)
void sort(llist l)
for(p = l->next; p != null; p = p->next)
printf("%d ", p->data);
printf("\n");
}void delete_allsame(llist l)
for(p = l->next; p != null; p = p->next)
printf("%d ", p->data);
printf("\n");
}void divide(llist l)
while(!l1);
s = l1;
while(p != null) }
q->next = null;
s->next = null;
printf("奇數序列的單鏈表:\n");
for(q = l->next; q != null; q = q->next)
printf("%d ", q->data);
printf("\n");
printf("偶數序列的單鏈表:\n");
for(s = l1->next; s != null; s = s->next)
printf("%d ", s->data);
printf("\n");
}
線性表 鏈式儲存
概念 邏輯上相鄰的兩個資料元素在物理位置上可能相鄰也可能不相鄰,這中儲存結構為非順序映像或鏈式映像。特點 線性表的鏈式儲存結構的特點是可以用一組任意的儲存單元來儲存線性表中的資料,這組儲存單元可以是連續的,也可以是不連續的。由於這種特性,單鏈表中要取得第i個元素,必須從第乙個元素開始尋找,因此單鏈表...
線性表 鏈式儲存
基類 ifndef linearlist h define linearlist h filename linearlist.h creater qianchenglong date 2011 10 18 comments 線性表的抽象基類 template class linearlist lin...
線性表鏈式儲存結構
include include 線性表鏈式儲存結構 typedef struct lnodelnode,linklist int initlist linklist l 初始化 int endinsert linklist l,int e p next s return 1 末尾插入元素 int g...