久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
原創 控制臺測試鏈表程序-C語言指針練習的好例子
[打印本頁]
作者:
jizhongbiao
時間:
2021-10-9 16:55
標題:
原創 控制臺測試鏈表程序-C語言指針練習的好例子
51hei圖片_20211009165251.png
(22.63 KB, 下載次數: 87)
下載附件
2021-10-9 16:55 上傳
C語言源程序:
/* mcu6666 */
#include "stdio.h"
#include "malloc.h"
typedef struct node {
int data;
node* next;
}Node;
typedef struct {
unsigned char id;
void(*Func)(Node **head);
}FuncSt;
Node* uartListHead = NULL;
int ListCreat(Node **p_list, int size)
{
node* p = NULL;
int i;
*p_list = (Node*)malloc(sizeof(Node));
if (*p_list == NULL)
{
return 0;
}
(*p_list)->next = NULL;
for (i = size; i > 0; i--)
{
p = (Node*)malloc(sizeof(Node));
if (p == NULL)
{
return 0;
}
p->data = i;
p->next =(*p_list)->next;
(*p_list)->next = p;
}
return 1;
}
void ScanPrintList(Node **head)
{
Node *p;
Node *q;
p = (*head)->next;
printf("\n\n鏈表遍歷結果如下:\n");
if (p == NULL)
{
printf("空鏈表\n");
}
while(p != NULL)
{
printf("%d\t",p->data);
q = p->next;
p = q;
}
printf("\n\n");
}
void ListGetDat(Node **head, int dat)
{
Node* tempPtr = (Node*)malloc(sizeof(Node));
Node *p = NULL;
int count = 0;
int flag = 0;
if (tempPtr == NULL)
{
return;
}
if ((*head)->next == NULL)
{
printf("未查到該元素");
return;
}
p = *head;
while(p != NULL)
{
if (p->data == dat)
{
printf("第%d個元素是%d\n",count,dat);
flag = 1;
}
p = p->next;
count++;
}
if (flag == 0)
{
printf("未查到該元素\n");
}
}
void ListRemoveDat(Node **head, int dat)
{
Node *p = NULL;
Node *q = NULL;
int count = 0;
int flag = 0;
if ((*head)->next == NULL)
{
printf("未查到該元素 無法刪除");
return;
}
p = *head;
q = p;
while(p != NULL)
{
if (p->data == dat)
{
printf("第%d個元素是%d 已刪除\n",count,dat);
flag = 1;
q->next = p->next;
free(p);
p = q;
}
q = p;
p = p->next;
count++;
}
if (flag == 0)
{
printf("未查到該元素 無法刪除\n");
}
}
void ListRemoveDatTest(Node **head)
{
int temp;
printf("remove input:\n");
scanf("%d",&temp);
ListRemoveDat(head, temp);
}
void ListGetDatTest(Node **head)
{
int temp;
printf("aim input:\n");
scanf("%d",&temp);
ListGetDat(head, temp);
}
void ListTailAdd(Node **head, int dat)
{
Node* tempPtr = (Node*)malloc(sizeof(Node));
Node *p = NULL;
if (tempPtr == NULL)
{
return;
}
if ((*head)->next == NULL)
{
(*head)->next = tempPtr;
tempPtr->data = dat;
tempPtr->next = NULL;
return;
}
p = *head;
while(p->next != NULL)
{
p = p->next;
}
p->next = tempPtr;
tempPtr->data = dat;
tempPtr->next = NULL;
}
void TailAddTest(Node **head)
{
int temp;
printf("value input:\n");
scanf("%d",&temp);
ListTailAdd(head, temp);
}
void ListClean(Node **head)
{
Node *p = NULL;
while((*head)->next != NULL)
{
p = (*head)->next;
(*head)->next = p->next;
free(p);
}
}
FuncSt g_funcTable[] = {
{1, ListClean},
{2, TailAddTest},
{3, ListGetDatTest},
{4, ScanPrintList},
{5, ListRemoveDatTest},
};
void FnucHandleTask(unsigned char id)
{
for (int i = 0; i < (sizeof(g_funcTable) / sizeof(g_funcTable[0])); i++)
{
if (id == g_funcTable[i].id)
{
g_funcTable[i].Func(&uartListHead);
break;
}
}
}
void InitPrnt(void)
{
printf("1:鏈表清空\t2:尾部添加元素\t3:查找指定元素\t4:遍歷鏈表\t5:刪除指定元素\t6:指定位置數據更改\t\n");
}
int main()
{
unsigned char testCategory;
if (ListCreat(&uartListHead, 10) == 1)
{
printf("list creat succes!\n");
}
while(1)
{
InitPrnt();
scanf("%d",&testCategory);
FnucHandleTask(testCategory);
}
return 1;
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久国
|
欧美一区二区三区在线观看视频
|
91精品国产综合久久久久久漫画
|
一二三区视频
|
56pao在线
|
天天操操
|
久久精品视频播放
|
亚洲精品短视频
|
国产免费高清
|
91资源在线
|
日韩欧美中文字幕在线观看
|
午夜天堂精品久久久久
|
精品综合
|
在线观看av网站
|
久久久久久亚洲精品
|
日韩中文字幕
|
欧美综合视频在线
|
91精品国产日韩91久久久久久
|
日本不卡一区
|
一区二区三区亚洲精品国
|
毛片99
|
九九热精品在线视频
|
91传媒在线观看
|
大乳boobs巨大吃奶挤奶
|
日韩精品视频在线播放
|
日韩一区二区三区视频
|
夜夜精品浪潮av一区二区三区
|
操网站
|
日韩精品专区在线影院重磅
|
99福利网
|
日韩国产黄色片
|
久久久女女女女999久久
|
日韩电影一区
|
99reav
|
中文二区
|
日本中文字幕在线观看
|
欧美精品一区二区三区在线播放
|
99热在这里只有精品
|
日韩精品一区二区三区中文在线
|
日韩精品区
|
国产精品久久久久久影视
|