jmu-ds-单链表的基本运算
来源:互联网 发布:gta5ol捏脸美女数据 编辑:程序博客网 时间:2024/05/16 05:53
实现单链表的基本运算:初始化、插入、删除、求表的长度、判空、释放。
一行是尾插法需要插入的字符数据的个数,第二行是具体插入的字符数据。
(3)输出单链表L;
(4)输出单链表L的长度;
(5)判断单链表L是否为空;
(6)输出单链表L的第3个元素;
(7)输出元素a的位置;
(8)在第4个元素位置上插入‘x’元素;
(9)输出单链表L;
(10)删除L的第3个元素;
(11)输出单链表L;
(12)释放单链表L。
输入格式:
两行数据,第一行是尾插法需要插入的字符数据的个数,第二行是具体插入的字符数据。
输出格式:
按照题目要求输出
输入样例:
5
a b c d e
输出样例:
0
a b c d e
5
no
c
1
a b c x d e
a b x d e
分析:坑,输入数据之间有空格,输出数据之间有空格,再这里卡死了好几天,其他都很基础
#include <stdio.h>#include <malloc.h>#include <stdlib.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFRASIBLE -1#define COERFLOW -2typedef int Status;typedef char ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;Status InitList_L(LinkList &L){ L = (LNode *)malloc(sizeof(LNode)); L -> next = NULL; printf("%d\n",L -> next); return OK;}Status CreateList_L(LinkList &L,char str[],int n){ int i; L=(LinkList )malloc(sizeof(LNode)); LinkList tail = L;//尾指针 for(i = 0; i < n; i++) { LNode *p; p = (LNode *)malloc(sizeof(LNode)); if(p == NULL) return FALSE; p -> data = str[i]; p -> next = NULL; tail -> next = p; tail = tail -> next; } return OK;}void PrintList_L(LinkList &L){ printf("%c",L -> next -> data); LNode *p = L -> next -> next; while(p != NULL) { printf(" %c",p -> data); p = p -> next; }}void LengthList_L(LinkList &L){ int count = 0; LNode *p = L -> next; while(p != NULL) { count++; p = p -> next; } printf("%d\n",count);}void If_emptyLIst_L(LinkList &L){ LNode *p = L -> next; if(p == NULL) printf("yes\n"); else printf("no\n");}void Print3List_L(LinkList &L){ int j = 1; LNode *p = L -> next; while(p && j < 3) { ++j; p = p -> next; } if(p == NULL) printf("NOT FOUND\n"); else printf("%c\n",p -> data);}Status PrintaList_L(LinkList &L){ LNode *p = L -> next; int j = 1; while(p && p -> data != 'a') { j++; p = p -> next; } if(p == NULL) return FALSE; printf("%d\n",j);}Status Insert4List_L(LinkList &L){ int j = 1; LNode *p = L -> next; while(p && j < 3) { j++; p = p -> next; } if(p == NULL) return FALSE; LNode *q; q = (LNode *)malloc(sizeof(LNode)); q -> next = p -> next; q -> data = 'x'; p -> next = q; return OK;}Status Delete3List_L(LinkList &L){ int j = 1; LNode *p = L -> next; while(p && j < 2) { j++; p = p -> next; } if(p == NULL) return FALSE; LNode *q; q = p -> next; p -> next = q -> next; free(q); return OK;}int main(){ int n,i; scanf("%d",&n); char c; char str[100]; for(i = 0; i < n; i++) scanf("%s",&str[i]); LinkList L; InitList_L(L); CreateList_L(L,str,n); PrintList_L(L); printf("\n"); LengthList_L(L); If_emptyLIst_L(L); Print3List_L(L); PrintaList_L(L); Insert4List_L(L); PrintList_L(L); printf("\n"); Delete3List_L(L); PrintList_L(L);}
阅读全文
1 0
- jmu-ds-单链表的基本运算
- jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算
- PTA 7-3 jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算
- PTA(数据结构)- jmu-ds-单链表的基本运算
- 7-3 jmu-ds-单链表的基本运算(15 分)
- 4-1 jmu-ds-集合的并交差运算(15 分)
- 单链表的基本运算
- 单链表的基本运算
- 单链表的基本运算
- 单链表的基本运算
- DS 单链表的实现
- 4-2 jmu-ds-顺序表区间元素删除(15 分)
- 4-2 jmu-ds-顺序表区间元素删除(15 分)
- 单链表各种基本的运算
- C 单链表的基本运算
- JavaScript最佳新手入门系列之(ajax)
- 随笔(1)STM32F4——音频播放器
- 自定义可点击和滑动的按钮
- JAVA知识点梳理第二部分——接口、内部类、异常等等
- hdu1533(最小费用最大流spfa模板)
- jmu-ds-单链表的基本运算
- 输入量control input signal复现
- JavaScript编写浏览器脚本
- oracle数据库
- android 连按两次Back键退出应用
- mac 系统安装Python3(亲测可行)(一)
- keil5编译出现Error: L6411E:的解决办法
- 各种乱码、验证码、重定向和转发应用
- JAVA知识点梳理第三部分——图形用户界面GUI部分