本文共 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-轮月