博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构笔记-线性表及其操作
阅读量:548 次
发布时间:2019-03-09

本文共 2734 字,大约阅读时间需要 9 分钟。

世 上 没 有 绝 望 的 处 境

只 有 对 处 境 绝 望 的 人

数据结构笔记-线性表及其操作

本博客只为记录,以及对与一些学习线性表的同志提供代码资源20201007

顺序表

/*线性表及其操作顺序表1. 两个有序顺序表成一个有序顺序表By-Round moon转载备注说明*/#include
#include
#define Init_size 10#define Increase 10typedef struct node{
int *save; int now_size; int tot_size;} Sqlist;void init(Sqlist*temp){
temp->save=(int*)malloc(sizeof(Sqlist)*Init_size); if(!temp->save) {
puts("运行错误!"); exit(0); } temp->now_size=0; temp->tot_size=Init_size;}void add(Sqlist *L,int num){
if(L->now_size==L->tot_size) {
L->tot_size+=Increase; int* new_base=(int*)realloc(L->save,sizeof(Sqlist)*L->tot_size); if(!new_base) {
puts("运行错误!"); exit(0); } L->save=new_base; } L->save[L->now_size++]=num;}void merge(Sqlist a,Sqlist b,Sqlist *ans){
int now_a=0,now_b=0; while(now_a!=a.now_size&&now_b!=b.now_size) {
if(a.save[now_a]

链表

/*线性表及其操作链表1.创建2.链接3.两个有序链表合并为一个有序链表By-Round moon转载备注说明*/#include
#include
typedef struct node{
struct node *next; int data;} Lnode,*Linklist;Linklist init(){
Linklist head=(Linklist)malloc(sizeof(Lnode)); if(!head) {
puts("运行错误!"); exit(0); } head->next=NULL; return head;}Linklist add(Linklist now,int num){
Linklist new_note=(Linklist)malloc(sizeof(Lnode)); if(!new_note) {
puts("运行错误!"); exit(0); } new_note->data=num; new_note->next=now->next; now->next=new_note; return new_note;}void reverse(Linklist L){
Linklist temp; Linklist now=L->next; Linklist pre=L; while(now!=NULL) {
temp=now->next; now->next=pre; pre=now; now=temp; } L->next->next=NULL; L->next=pre;}void display(Linklist L){
Linklist now=L->next; printf("%d",now->data); now=now->next; for(; now!=NULL; now=now->next) printf(" %d",now->data); puts("");}Linklist merge(Linklist A,Linklist B){
Linklist L=init(),P,now1=A->next,now2=B->next; P=L; while(now1!=NULL&&now2!=NULL) {
if(now1->data
data) {
P=add(P,now1->data); now1=now1->next; } else {
P=add(P,now2->data); now2=now2->next; } } while(now1!=NULL) {
P=add(P,now1->data); now1=now1->next; } while(now2!=NULL) {
P=add(P,now2->data); now2=now2->next; } return L;}int main(){
Linklist A=init(),B=init(),ans; Linklist P1=A,P2=B; int n,m,num,i; printf("请输入A和B链表的长度:\n"); scanf("%d%d",&n,&m); for( i=0; i

By-轮月

你可能感兴趣的文章