电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构核心算法大全VIP免费

数据结构核心算法大全_第1页
1/125
数据结构核心算法大全_第2页
2/125
数据结构核心算法大全_第3页
3/125
1 线性表 单链表逆置 //已知单链表H,写一个算法将其逆置 //H->head->32->63->18->50->26->NULL #include #include typedef struct node { char data; //data 为结点数据信息 struct node *next; //next 为指向后继结点的指针 }LNode; //单链表数据类型 LNode *CreateLinkList() // 生成单链表 { LNode *head,*p,*q; char x; head=(LNode *)malloc(sizeof(LNode)); //生成头结点 head->next=NULL; p=head; q=p; //q始终指向链尾结点 printf("Input any char string:\n"); scanf("%c",&x); while(x!='\n') { p=(LNode *)malloc(sizeof(LNode)); p->data=x; p->next=NULL; q->next=p; //在链尾插入 q=p; scanf("%c",&x); } return head; //返回指向单链表的头指针head } void Convert(LNode *H) //单链表的逆置 { LNode *p,*q; p=H->next; //p 指向剩余结点链表的第一个数据结点 H->next=NULL; //新链表H 初始为空 while(p!=NULL) { q=p; //从剩余结点链表中取出第一个结点 p=p->next; //p 继续指向剩余结点链表新的第一个数据结点 2 q->next=H->next; //将取出的结点*q 插入到新链表H 的链首 H->next=q; } } void main() { LNode *A,*p; A=CreateLinkList(); //生成单链表A Convert(A); // 单链表逆置 p=A->next; // 输出逆置后的单链表 while(p!=NULL) { printf("%c",p->data); p=p->next; } printf("\n"); } 双链表合并 //对两个元素递增有序的单链表A 和 B,编写算法将A、 B 合并成一个按元素递减有序的单链表C,要求算法使用A\B 中原有的结点,不允许增加新结点 #include #include typedef struct node { int data; //data为结点的数据信息 struct node *next; //next 为指向后继结点的指针 }LNode; LNode *CreateLinkList() //生成单链表 { LNode *head,*p,*q; int i,n; head=(LNode *)malloc(sizeof(LNode)); //生成头结点 head->next=NULL; p=head; q=p; //指针q 始终指向链尾结点 printf("Input length of list:\n"); scanf("%d",&n); // 读入节点数据 printf("Input data of list:\n"); for(i=1;i<=n;i++) // 生成链表的数据结点 { p=(LNode *)malloc(sizeof(LNode)); //申请一个节点空间 scanf("%d",&p->data); p-...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据结构核心算法大全

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部